@geowiki/design-system 0.16.0-dev.1 → 0.16.0-dev.3
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/README.md +254 -0
- package/dist/index.d.ts +199 -36
- package/dist/index.js +11092 -1807
- package/dist/index.mjs +10607 -1306
- package/dist/styles.css +1 -1
- package/package.json +10 -9
- package/dist/index.d.mts +0 -988
package/README.md
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# @geowiki/design-system
|
|
2
|
+
|
|
3
|
+
The foundational UI component library for the GeoWiki platform. This package provides accessible, themeable components built on [Radix UI](https://www.radix-ui.com/) primitives, a comprehensive icon set, design tokens, and shared utilities — all styled with [Tailwind CSS](https://tailwindcss.com/).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @geowiki/design-system
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Peer dependencies:** `react >= 18.2.0` and `react-dom >= 18.2.0`
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
### 1. Import styles
|
|
16
|
+
|
|
17
|
+
Import the package stylesheet in your application entry point:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import "@geowiki/design-system/styles.css";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 2. Extend Tailwind config
|
|
24
|
+
|
|
25
|
+
To use the design system's Tailwind theme (colors, typography, animations) in your own components:
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
// tailwind.config.js
|
|
29
|
+
const designSystemConfig = require("@geowiki/design-system/tailwind-config");
|
|
30
|
+
|
|
31
|
+
/** @type {import('tailwindcss').Config} */
|
|
32
|
+
module.exports = {
|
|
33
|
+
presets: [designSystemConfig],
|
|
34
|
+
content: [
|
|
35
|
+
"./src/**/*.{js,ts,jsx,tsx}",
|
|
36
|
+
// Include design-system components in Tailwind's content scan
|
|
37
|
+
"./node_modules/@geowiki/design-system/dist/**/*.{js,mjs}",
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 3. Import components
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { Button, Dialog, DialogContent, DialogTrigger, cn } from "@geowiki/design-system";
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Package Exports
|
|
49
|
+
|
|
50
|
+
| Export Path | Description |
|
|
51
|
+
| ---------------------------------- | ------------------------------------------ |
|
|
52
|
+
| `@geowiki/design-system` | All components, icons, hooks, and utilities |
|
|
53
|
+
| `@geowiki/design-system/styles.css` | Compiled CSS (Tailwind + design tokens) |
|
|
54
|
+
| `@geowiki/design-system/tailwind-config` | Tailwind configuration preset |
|
|
55
|
+
|
|
56
|
+
## Component Catalog
|
|
57
|
+
|
|
58
|
+
### UI Primitives
|
|
59
|
+
|
|
60
|
+
41 accessible, unstyled-by-default components built on Radix UI, styled with Tailwind and `class-variance-authority`:
|
|
61
|
+
|
|
62
|
+
| Component | Component | Component | Component |
|
|
63
|
+
| --------- | --------- | --------- | --------- |
|
|
64
|
+
| Accordion | Alert | AlertDialog | AspectRatio |
|
|
65
|
+
| Avatar | Badge | Button | Calendar |
|
|
66
|
+
| Card | Checkbox | Collapsible | Command |
|
|
67
|
+
| ContextMenu | Dialog | DropdownMenu | Form |
|
|
68
|
+
| HoverCard | Input | Label | Menubar |
|
|
69
|
+
| NavigationMenu | Popover | Progress | RadioGroup |
|
|
70
|
+
| ScrollArea | Select | Separator | Sheet |
|
|
71
|
+
| Skeleton | Slider | Switch | Table |
|
|
72
|
+
| Tabs | Tag | TagList | Textarea |
|
|
73
|
+
| Toast | Toaster | Toggle | Tooltip |
|
|
74
|
+
| useToast | | | |
|
|
75
|
+
|
|
76
|
+
### Icons
|
|
77
|
+
|
|
78
|
+
28 custom SVG icon components for application UI:
|
|
79
|
+
|
|
80
|
+
`AccountIcon` `AtomIcon` `BookTextIcon` `CalendarIcon` `CameraIcon` `ChartLineDotsIcon` `ChatsIcons` `ClipboardIcon` `CpuIcon` `DesktopCodeIcon` `FarmerClustersIcon` `GridDividersIcon` `HardDriveIcon` `HeadphonesIcon` `ImageIcon` `LayerGroupIcon` `LegendIcon` `MapLayersIcon` `MicroscopeIcon` `MinusIcon` `PlusIcon` `ResourcesIcon` `SettingsIcon` `StopWatchCheckIcon` `UserGroupIcon` `VideoPlayIcon` `XIcon`
|
|
81
|
+
|
|
82
|
+
A polymorphic `Icon` component is also available for dynamic icon rendering.
|
|
83
|
+
|
|
84
|
+
### Map Icons
|
|
85
|
+
|
|
86
|
+
11 specialized icons for GIS and map visualization:
|
|
87
|
+
|
|
88
|
+
`Download` `FarmerClusterPin` `Hexagon` `IconPaths` `Legend` `LocationIcon` `MapIcon` `Microscope` `ObservationPin` `Overlay` `UsersGroup`
|
|
89
|
+
|
|
90
|
+
### Design Elements
|
|
91
|
+
|
|
92
|
+
22 higher-level, application-specific components:
|
|
93
|
+
|
|
94
|
+
`AboutInfoItem` `Breadcrumb` `DesignButton` `Carousel` `DesignCheckbox` `Cookies` `Country` `Infobox` `DesignInput` `KeyInfoItem` `LastUpdatedTag` `NoResults` `DesignRadioGroup` `DesignSelect` `SimpleTag` `DesignSwitch` `DesignTag` `TagsGroup` `TestWeight` `ThreeColumn` `Typography` `VersionDisplay`
|
|
95
|
+
|
|
96
|
+
### Elements
|
|
97
|
+
|
|
98
|
+
15 utility and presentation components:
|
|
99
|
+
|
|
100
|
+
`ElementButton` `ButtonLink` `Error` `FeatureDisabled` `IframeViewer` `Loader` `LocalLoader` `MediaEmbedItem` `PermissionDisabled` `ShowLargeText` `ShowShortText` `SizedImage` `UnderConstruction` `DisplayItem`
|
|
101
|
+
|
|
102
|
+
### Shared Components
|
|
103
|
+
|
|
104
|
+
Reusable composite components and hooks:
|
|
105
|
+
|
|
106
|
+
| Component | Description |
|
|
107
|
+
| --------- | ----------- |
|
|
108
|
+
| `CustomTable` | Data table built on `@tanstack/react-table` |
|
|
109
|
+
| `FullPageLoader` | Full-screen loading overlay |
|
|
110
|
+
| `CustomImage` | Enhanced image component |
|
|
111
|
+
| `Loader` | Inline loading spinner |
|
|
112
|
+
| `Pagination` | Page navigation controls |
|
|
113
|
+
| `Search` | Search input with debounce |
|
|
114
|
+
| `ThemeSwitcher` | Light/dark theme toggle |
|
|
115
|
+
| `useDebounce` | Debounce hook for values |
|
|
116
|
+
|
|
117
|
+
### Buttons & Inputs
|
|
118
|
+
|
|
119
|
+
| Component | Description |
|
|
120
|
+
| --------- | ----------- |
|
|
121
|
+
| `DeleteButton` | Destructive action button |
|
|
122
|
+
| `PrimaryButton` | Primary CTA button |
|
|
123
|
+
| `OldCustomInput` | Legacy styled input |
|
|
124
|
+
| `MultiSelect` | Multi-value select (react-select) |
|
|
125
|
+
| `TextArea` | Styled textarea |
|
|
126
|
+
|
|
127
|
+
### Other
|
|
128
|
+
|
|
129
|
+
| Component | Description |
|
|
130
|
+
| --------- | ----------- |
|
|
131
|
+
| `UmamiAnalytics` | Umami analytics script injection |
|
|
132
|
+
| `HeroImage` | Hero section image component |
|
|
133
|
+
| `Horizontal` | Horizontal panel layout |
|
|
134
|
+
|
|
135
|
+
## Utilities
|
|
136
|
+
|
|
137
|
+
| Export | Description |
|
|
138
|
+
| ------ | ----------- |
|
|
139
|
+
| `cn(...inputs)` | Merges class names using `clsx` + `tailwind-merge`. Use this instead of raw string concatenation to avoid Tailwind class conflicts. |
|
|
140
|
+
| `getPages(totalItems, pageSize)` | Calculates pagination metadata (total pages, offsets). |
|
|
141
|
+
|
|
142
|
+
## Models
|
|
143
|
+
|
|
144
|
+
| Export | Description |
|
|
145
|
+
| ------ | ----------- |
|
|
146
|
+
| `LinkButtonItem` | TypeScript interface for link button configuration objects. |
|
|
147
|
+
|
|
148
|
+
## Design Tokens
|
|
149
|
+
|
|
150
|
+
The package ships a comprehensive set of CSS custom properties defined in `src/styles/tokens.css`. These tokens drive the Tailwind theme and can be overridden for theming.
|
|
151
|
+
|
|
152
|
+
### Color System
|
|
153
|
+
|
|
154
|
+
- **Primary scale:** `--primary-50` through `--primary-950` (11 steps)
|
|
155
|
+
- **Semantic colors:** `--background`, `--foreground`, `--card`, `--popover`, `--muted`, `--secondary`, `--accent`, `--destructive`, `--border`, `--input`, `--ring`
|
|
156
|
+
- **Tag palette:** 11 named tag colors — blue, dark-blue, light-green, dark-green, orange, light-purple, purple, dark-purple, pink, turquoise, yellow
|
|
157
|
+
- **Legacy colors:** `--primary-black`, `--primary-green`, `--primary-white`, `--system-error`
|
|
158
|
+
|
|
159
|
+
### Typography
|
|
160
|
+
|
|
161
|
+
Fonts: **Montserrat** (primary), **Open Sans**, **Hanken Grotesk**
|
|
162
|
+
|
|
163
|
+
| Scale | Sizes |
|
|
164
|
+
| ----- | ----- |
|
|
165
|
+
| Headings | `h1`–`h9` (with accent/italic variants for `h1`, `h2`) |
|
|
166
|
+
| Body | `body-12`, `body-14`, `body-15`, `body-16`, `body-18`, `body-20` (with medium/semibold/bold variants) |
|
|
167
|
+
| Landing | `landing-title` (80px, with accent italic variant) |
|
|
168
|
+
| Caption | `caption` (16px, tracked) |
|
|
169
|
+
|
|
170
|
+
## Architecture
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
@geowiki/design-system
|
|
174
|
+
├── src/
|
|
175
|
+
│ ├── components/
|
|
176
|
+
│ │ ├── ui/ # Radix UI primitives (41)
|
|
177
|
+
│ │ ├── Icons/ # Custom SVG icons (28)
|
|
178
|
+
│ │ │ └── MapIcons/ # GIS-specific icons (11)
|
|
179
|
+
│ │ ├── DesignElements/ # Application components (22)
|
|
180
|
+
│ │ ├── Elements/ # Utility components (15)
|
|
181
|
+
│ │ ├── Shared/ # Composite components (8) + hooks
|
|
182
|
+
│ │ ├── Button/ # Specialized buttons (2)
|
|
183
|
+
│ │ ├── Input/ # Input variants (3)
|
|
184
|
+
│ │ ├── Analytics/ # Analytics integration
|
|
185
|
+
│ │ ├── Hero/ # Hero section
|
|
186
|
+
│ │ └── Panel/ # Panel layouts
|
|
187
|
+
│ ├── lib/
|
|
188
|
+
│ │ ├── utils.ts # cn(), getPages()
|
|
189
|
+
│ │ ├── models/ # TypeScript interfaces
|
|
190
|
+
│ │ └── styles/
|
|
191
|
+
│ │ └── tokens.css # CSS custom properties
|
|
192
|
+
│ └── index.tsx # Barrel export
|
|
193
|
+
├── tailwind.config.js # Tailwind theme (importable as preset)
|
|
194
|
+
├── styles.css # Entry point for CSS build
|
|
195
|
+
└── tsup.config.ts # Build configuration
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### How it fits in the monorepo
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
geowiki app → @geowiki/ui → @geowiki/design-system
|
|
202
|
+
(business UI) (primitives & tokens)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`@geowiki/design-system` contains only standalone, dependency-free UI components. It has no knowledge of APIs, state management, or application logic. The `@geowiki/ui` package imports from design-system and adds business-specific behavior (API integration, store bindings, etc.).
|
|
206
|
+
|
|
207
|
+
## Development
|
|
208
|
+
|
|
209
|
+
### Scripts
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
pnpm build # Build with tsup + Tailwind CSS
|
|
213
|
+
pnpm lint # ESLint
|
|
214
|
+
pnpm type-check # TypeScript validation
|
|
215
|
+
pnpm clean # Remove dist, node_modules, .turbo
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Build output
|
|
219
|
+
|
|
220
|
+
The build produces three artifacts in `dist/`:
|
|
221
|
+
|
|
222
|
+
| File | Format | Description |
|
|
223
|
+
| ---- | ------ | ----------- |
|
|
224
|
+
| `index.js` | CommonJS | Node.js / bundler import |
|
|
225
|
+
| `index.mjs` | ESM | Modern bundler import |
|
|
226
|
+
| `index.d.ts` | TypeScript | Type declarations |
|
|
227
|
+
| `styles.css` | CSS | Minified Tailwind + tokens |
|
|
228
|
+
|
|
229
|
+
### Adding a new component
|
|
230
|
+
|
|
231
|
+
1. Create the component in the appropriate `src/components/` subdirectory.
|
|
232
|
+
2. Export it from `src/index.tsx`.
|
|
233
|
+
3. If the component uses new design tokens, add the CSS custom properties to `src/styles/tokens.css` and map them in `tailwind.config.js`.
|
|
234
|
+
4. Run `pnpm build` to verify the build succeeds.
|
|
235
|
+
|
|
236
|
+
## Tech Stack
|
|
237
|
+
|
|
238
|
+
| Concern | Library |
|
|
239
|
+
| ------- | ------- |
|
|
240
|
+
| Component primitives | [Radix UI](https://www.radix-ui.com/) |
|
|
241
|
+
| Styling | [Tailwind CSS 3.3](https://tailwindcss.com/) |
|
|
242
|
+
| Variant API | [class-variance-authority](https://cva.style/) |
|
|
243
|
+
| Class merging | [clsx](https://github.com/lukeed/clsx) + [tailwind-merge](https://github.com/dcastil/tailwind-merge) |
|
|
244
|
+
| Icons | Custom SVG + [Lucide React](https://lucide.dev/) + [Heroicons](https://heroicons.com/) |
|
|
245
|
+
| Data tables | [@tanstack/react-table](https://tanstack.com/table) |
|
|
246
|
+
| Multi-select | [react-select](https://react-select.com/) |
|
|
247
|
+
| Calendar | [react-day-picker](https://react-day-picker.js.org/) |
|
|
248
|
+
| Carousel | [Embla Carousel](https://www.embla-carousel.com/) |
|
|
249
|
+
| Command palette | [cmdk](https://cmdk.paco.me/) |
|
|
250
|
+
| Build tool | [tsup](https://tsup.egoist.dev/) |
|
|
251
|
+
|
|
252
|
+
## License
|
|
253
|
+
|
|
254
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -359,11 +359,11 @@ interface TagProps {
|
|
|
359
359
|
}
|
|
360
360
|
declare const Tag: ({ tag, className }: TagProps) => react_jsx_runtime.JSX.Element;
|
|
361
361
|
|
|
362
|
-
interface Props$
|
|
362
|
+
interface Props$i {
|
|
363
363
|
tags?: string[];
|
|
364
364
|
tagColor?: string;
|
|
365
365
|
}
|
|
366
|
-
declare const TagList: (props: Props$
|
|
366
|
+
declare const TagList: (props: Props$i) => react_jsx_runtime.JSX.Element;
|
|
367
367
|
|
|
368
368
|
interface TextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
369
369
|
}
|
|
@@ -605,14 +605,14 @@ interface FullPageLoaderProps {
|
|
|
605
605
|
}
|
|
606
606
|
declare const FullPageLoader: ({ show }: FullPageLoaderProps) => react_jsx_runtime.JSX.Element | null;
|
|
607
607
|
|
|
608
|
-
interface Props$
|
|
608
|
+
interface Props$h {
|
|
609
609
|
src: string;
|
|
610
610
|
className?: string;
|
|
611
611
|
alternativeText?: string;
|
|
612
612
|
width?: number | string;
|
|
613
613
|
height?: number | string;
|
|
614
614
|
}
|
|
615
|
-
declare const CustomImage: (props: Props$
|
|
615
|
+
declare const CustomImage: (props: Props$h) => react_jsx_runtime.JSX.Element;
|
|
616
616
|
|
|
617
617
|
declare const Loader: () => react_jsx_runtime.JSX.Element;
|
|
618
618
|
|
|
@@ -632,7 +632,7 @@ declare const ThemeSwitcher: () => react_jsx_runtime.JSX.Element;
|
|
|
632
632
|
|
|
633
633
|
declare const useDebounce: <V extends unknown>(value: V, delay?: number) => V;
|
|
634
634
|
|
|
635
|
-
interface Props$
|
|
635
|
+
interface Props$g {
|
|
636
636
|
register?: any;
|
|
637
637
|
value?: any;
|
|
638
638
|
defaultValue?: any;
|
|
@@ -648,9 +648,9 @@ interface Props$e {
|
|
|
648
648
|
noDisplayTextAsLabel?: boolean;
|
|
649
649
|
cssClass?: string;
|
|
650
650
|
}
|
|
651
|
-
declare const OldCustomInput: (props: Props$
|
|
651
|
+
declare const OldCustomInput: (props: Props$g) => react_jsx_runtime.JSX.Element;
|
|
652
652
|
|
|
653
|
-
type Props$
|
|
653
|
+
type Props$f = {
|
|
654
654
|
name: string;
|
|
655
655
|
displayText: string;
|
|
656
656
|
register: any;
|
|
@@ -666,9 +666,9 @@ type Props$d = {
|
|
|
666
666
|
Placeholder?: string;
|
|
667
667
|
showLabel?: boolean;
|
|
668
668
|
};
|
|
669
|
-
declare const MultiSelect: (props: Props$
|
|
669
|
+
declare const MultiSelect: (props: Props$f) => react_jsx_runtime.JSX.Element;
|
|
670
670
|
|
|
671
|
-
interface Props$
|
|
671
|
+
interface Props$e {
|
|
672
672
|
register: any;
|
|
673
673
|
value: any;
|
|
674
674
|
defaultValue?: any;
|
|
@@ -682,7 +682,7 @@ interface Props$c {
|
|
|
682
682
|
isLabelBold?: boolean;
|
|
683
683
|
isPlaceholderItalic?: boolean;
|
|
684
684
|
}
|
|
685
|
-
declare const TextArea: (props: Props$
|
|
685
|
+
declare const TextArea: (props: Props$e) => react_jsx_runtime.JSX.Element;
|
|
686
686
|
|
|
687
687
|
interface UmamiAnalyticsProps {
|
|
688
688
|
scriptUrl?: string;
|
|
@@ -698,18 +698,18 @@ interface UmamiAnalyticsProps {
|
|
|
698
698
|
*/
|
|
699
699
|
declare const UmamiAnalytics: React__default.FC<UmamiAnalyticsProps>;
|
|
700
700
|
|
|
701
|
-
type Props$
|
|
701
|
+
type Props$d = {
|
|
702
702
|
onClick: any;
|
|
703
703
|
};
|
|
704
|
-
declare const DeleteButton: (props: Props$
|
|
704
|
+
declare const DeleteButton: (props: Props$d) => react_jsx_runtime.JSX.Element;
|
|
705
705
|
|
|
706
|
-
type Props$
|
|
706
|
+
type Props$c = {
|
|
707
707
|
onClick?: () => void;
|
|
708
708
|
label: string;
|
|
709
709
|
type: "button" | "submit";
|
|
710
710
|
style: "primary" | "secondary" | "danger";
|
|
711
711
|
};
|
|
712
|
-
declare const PrimaryButton: (props: Props$
|
|
712
|
+
declare const PrimaryButton: (props: Props$c) => react_jsx_runtime.JSX.Element;
|
|
713
713
|
|
|
714
714
|
interface AboutInfoItemProps {
|
|
715
715
|
title: string;
|
|
@@ -773,10 +773,10 @@ interface CookiesProps {
|
|
|
773
773
|
}
|
|
774
774
|
declare const Cookies: ({ handleAccept, handleDecline }: CookiesProps) => react_jsx_runtime.JSX.Element | null;
|
|
775
775
|
|
|
776
|
-
interface Props$
|
|
776
|
+
interface Props$b {
|
|
777
777
|
country: string;
|
|
778
778
|
}
|
|
779
|
-
declare const CountryItem: ({ country }: Props$
|
|
779
|
+
declare const CountryItem: ({ country }: Props$b) => react_jsx_runtime.JSX.Element;
|
|
780
780
|
|
|
781
781
|
interface InfoBoxProps {
|
|
782
782
|
title: string;
|
|
@@ -797,10 +797,10 @@ interface KeyInfoItemProps$1 {
|
|
|
797
797
|
}
|
|
798
798
|
declare const KeyInfoItem: ({ label, value }: KeyInfoItemProps$1) => react_jsx_runtime.JSX.Element;
|
|
799
799
|
|
|
800
|
-
interface Props$
|
|
800
|
+
interface Props$a {
|
|
801
801
|
date: string | number | Date;
|
|
802
802
|
}
|
|
803
|
-
declare const LastUpdatedTag: ({ date }: Props$
|
|
803
|
+
declare const LastUpdatedTag: ({ date }: Props$a) => react_jsx_runtime.JSX.Element;
|
|
804
804
|
|
|
805
805
|
declare const NoResults: () => react_jsx_runtime.JSX.Element;
|
|
806
806
|
|
|
@@ -818,14 +818,14 @@ declare const DesignSelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPr
|
|
|
818
818
|
declare const DesignSelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
819
819
|
declare const DesignSelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
820
820
|
|
|
821
|
-
interface Props$
|
|
821
|
+
interface Props$9 {
|
|
822
822
|
tag: string;
|
|
823
823
|
}
|
|
824
824
|
declare const designSimpleTagVariants: (props?: ({
|
|
825
825
|
variant?: "blue" | "orange" | "purple" | "turquoise" | "yellow" | "darkGreen" | "darkBlue" | null | undefined;
|
|
826
826
|
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
827
827
|
type TagType$1 = VariantProps<typeof designSimpleTagVariants> & ComponentProps<"span">;
|
|
828
|
-
declare const DesignSimpleTag: ({ tag, variant, className, }: Props$
|
|
828
|
+
declare const DesignSimpleTag: ({ tag, variant, className, }: Props$9 & TagType$1) => react_jsx_runtime.JSX.Element;
|
|
829
829
|
|
|
830
830
|
declare const DesignSwitch: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
831
831
|
|
|
@@ -842,24 +842,26 @@ interface KeyInfoItemProps {
|
|
|
842
842
|
}
|
|
843
843
|
declare const TagsGroup: ({ label, tags, variant }: KeyInfoItemProps) => react_jsx_runtime.JSX.Element;
|
|
844
844
|
|
|
845
|
-
interface Props$
|
|
845
|
+
interface Props$8 {
|
|
846
846
|
text: string;
|
|
847
847
|
}
|
|
848
848
|
declare const weightVariants: (props?: ({
|
|
849
849
|
variant?: "weight100" | "weight200" | "weight300" | "weight400" | "weight500" | "weight600" | "weight700" | "weight800" | "weight900" | null | undefined;
|
|
850
850
|
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
851
851
|
type TagType = VariantProps<typeof weightVariants> & ComponentProps<"div">;
|
|
852
|
-
declare const TestWeight: ({ text, variant, className }: Props$
|
|
852
|
+
declare const TestWeight: ({ text, variant, className }: Props$8 & TagType) => react_jsx_runtime.JSX.Element;
|
|
853
853
|
|
|
854
|
-
interface Props$
|
|
854
|
+
interface Props$7 {
|
|
855
855
|
tag: string;
|
|
856
856
|
content: React.ReactNode;
|
|
857
857
|
TagClassName?: string;
|
|
858
858
|
}
|
|
859
|
-
declare const ThreeColumn: ({ tag, content, TagClassName }: Props$
|
|
859
|
+
declare const ThreeColumn: ({ tag, content, TagClassName }: Props$7) => react_jsx_runtime.JSX.Element;
|
|
860
860
|
|
|
861
861
|
declare const LandingTitle: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
862
862
|
declare const LandingTitleAccent: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
863
|
+
declare const BigLandingTitle: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
864
|
+
declare const BigLandingTitleAccent: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
863
865
|
declare const H1Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
864
866
|
declare const H1AccentDesign: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
865
867
|
declare const H2Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">>;
|
|
@@ -871,7 +873,7 @@ declare const H6Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAtt
|
|
|
871
873
|
declare const H7Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
872
874
|
declare const H8Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
873
875
|
declare const H9Design: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
874
|
-
declare const Caption: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
876
|
+
declare const Caption: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
875
877
|
declare const Body20sb: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
876
878
|
declare const Body20m: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
877
879
|
declare const Body20: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">>;
|
|
@@ -895,14 +897,141 @@ declare const Body12: ForwardRefExoticComponent<Omit<DetailedHTMLProps<HTMLAttri
|
|
|
895
897
|
|
|
896
898
|
declare const VersionDisplay: () => react_jsx_runtime.JSX.Element | null;
|
|
897
899
|
|
|
900
|
+
interface DesignHeaderProps {
|
|
901
|
+
branding: {
|
|
902
|
+
logo: string;
|
|
903
|
+
title: string;
|
|
904
|
+
};
|
|
905
|
+
mainMenu: {
|
|
906
|
+
link: string;
|
|
907
|
+
text: string;
|
|
908
|
+
isNewTab?: boolean;
|
|
909
|
+
subMenu?: {
|
|
910
|
+
link: string;
|
|
911
|
+
text: string;
|
|
912
|
+
isNewTab?: boolean;
|
|
913
|
+
}[];
|
|
914
|
+
}[];
|
|
915
|
+
sessionStatus: "authenticated" | "unauthenticated" | "loading";
|
|
916
|
+
canLogin: boolean;
|
|
917
|
+
canSignUp: boolean;
|
|
918
|
+
isAdmin: boolean;
|
|
919
|
+
hasStickyNavBar?: boolean;
|
|
920
|
+
isFeatureEnabled?: boolean;
|
|
921
|
+
rootUrl?: string;
|
|
922
|
+
signIn?: any;
|
|
923
|
+
signOut?: any;
|
|
924
|
+
}
|
|
925
|
+
declare const DesignHeader: ({ branding, mainMenu, sessionStatus, canLogin, canSignUp: canSignup, isAdmin, hasStickyNavBar, signIn, signOut, isFeatureEnabled, rootUrl, }: DesignHeaderProps) => react_jsx_runtime.JSX.Element;
|
|
926
|
+
|
|
927
|
+
interface ResourcesQuickFindProps {
|
|
928
|
+
id: string;
|
|
929
|
+
background_color: string;
|
|
930
|
+
background_opacity: string;
|
|
931
|
+
title: string;
|
|
932
|
+
shouldParseTitle: boolean;
|
|
933
|
+
description: string;
|
|
934
|
+
resource_finder_text?: string;
|
|
935
|
+
resource_finder_url?: string;
|
|
936
|
+
parent_list_title: string;
|
|
937
|
+
parent_list: {
|
|
938
|
+
key: string;
|
|
939
|
+
value: string;
|
|
940
|
+
link?: string;
|
|
941
|
+
}[];
|
|
942
|
+
child_list?: {
|
|
943
|
+
key: string;
|
|
944
|
+
value: string;
|
|
945
|
+
}[];
|
|
946
|
+
child_list_title?: string;
|
|
947
|
+
download_resource: boolean;
|
|
948
|
+
}
|
|
949
|
+
declare const ResourcesQuickFind: (props: ResourcesQuickFindProps) => react_jsx_runtime.JSX.Element;
|
|
950
|
+
|
|
951
|
+
interface FAQProps {
|
|
952
|
+
faqs: {
|
|
953
|
+
question: string;
|
|
954
|
+
answer: React.ReactNode;
|
|
955
|
+
hint?: string;
|
|
956
|
+
}[];
|
|
957
|
+
backgroundColor?: string;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
interface Props$6 {
|
|
961
|
+
id: string;
|
|
962
|
+
title: string;
|
|
963
|
+
subtitle: string;
|
|
964
|
+
description?: string;
|
|
965
|
+
faqs?: FAQProps["faqs"];
|
|
966
|
+
backgroundColor?: string;
|
|
967
|
+
}
|
|
968
|
+
declare const FaqComponent: (props: Props$6) => react_jsx_runtime.JSX.Element;
|
|
969
|
+
|
|
970
|
+
interface ItemProps {
|
|
971
|
+
name: string;
|
|
972
|
+
href: string;
|
|
973
|
+
}
|
|
974
|
+
interface FooterProps {
|
|
975
|
+
branding: {
|
|
976
|
+
logo: string;
|
|
977
|
+
title: string;
|
|
978
|
+
};
|
|
979
|
+
navigation: {
|
|
980
|
+
category: string;
|
|
981
|
+
items: ItemProps[];
|
|
982
|
+
}[];
|
|
983
|
+
bottomMenu: {
|
|
984
|
+
name: string;
|
|
985
|
+
href: string;
|
|
986
|
+
iconPath?: string;
|
|
987
|
+
}[];
|
|
988
|
+
footerLogoPath: string | undefined;
|
|
989
|
+
footerText: string;
|
|
990
|
+
imagesPaths: string[] | undefined;
|
|
991
|
+
copyrights?: string | undefined;
|
|
992
|
+
socialLinks?: {
|
|
993
|
+
name: string;
|
|
994
|
+
href: string;
|
|
995
|
+
isNewTab?: boolean;
|
|
996
|
+
}[];
|
|
997
|
+
}
|
|
998
|
+
declare const DesignFooter: (props: FooterProps) => react_jsx_runtime.JSX.Element;
|
|
999
|
+
|
|
1000
|
+
interface AppItemProps {
|
|
1001
|
+
item: {
|
|
1002
|
+
id: string;
|
|
1003
|
+
name: string;
|
|
1004
|
+
logoUrl: string;
|
|
1005
|
+
locationType: string;
|
|
1006
|
+
dataDownloadLinks?: string[];
|
|
1007
|
+
externalWebsiteLink?: string;
|
|
1008
|
+
};
|
|
1009
|
+
}
|
|
1010
|
+
declare const AppItem: (props: AppItemProps) => react_jsx_runtime.JSX.Element;
|
|
1011
|
+
|
|
1012
|
+
interface AppItemListProps {
|
|
1013
|
+
id: string;
|
|
1014
|
+
name: string;
|
|
1015
|
+
title: string;
|
|
1016
|
+
allItems: {
|
|
1017
|
+
id: string;
|
|
1018
|
+
name: string;
|
|
1019
|
+
logoUrl: string;
|
|
1020
|
+
locationType: string;
|
|
1021
|
+
dataDownloadLinks?: string[];
|
|
1022
|
+
externalWebsiteLink?: string;
|
|
1023
|
+
}[];
|
|
1024
|
+
}
|
|
1025
|
+
declare const AppItemsList: (props: AppItemListProps) => react_jsx_runtime.JSX.Element;
|
|
1026
|
+
|
|
898
1027
|
declare const OldButton: ({ label, appearance, compact, handleClick, loading, type, }: any) => react_jsx_runtime.JSX.Element;
|
|
899
1028
|
|
|
900
|
-
interface Props$
|
|
1029
|
+
interface Props$5 {
|
|
901
1030
|
button: any;
|
|
902
1031
|
appearance: any;
|
|
903
1032
|
compact: any;
|
|
904
1033
|
}
|
|
905
|
-
declare const ButtonContent: ({ button, appearance, compact }: Props$
|
|
1034
|
+
declare const ButtonContent: ({ button, appearance, compact }: Props$5) => react_jsx_runtime.JSX.Element;
|
|
906
1035
|
interface ButtonLinkProps {
|
|
907
1036
|
button: any;
|
|
908
1037
|
appearance: any;
|
|
@@ -910,10 +1039,10 @@ interface ButtonLinkProps {
|
|
|
910
1039
|
}
|
|
911
1040
|
declare const ButtonLink: ({ button, appearance, compact, }: ButtonLinkProps) => react_jsx_runtime.JSX.Element;
|
|
912
1041
|
|
|
913
|
-
interface Props$
|
|
1042
|
+
interface Props$4 {
|
|
914
1043
|
message?: string;
|
|
915
1044
|
}
|
|
916
|
-
declare const ErrorMessage: (props: Props$
|
|
1045
|
+
declare const ErrorMessage: (props: Props$4) => react_jsx_runtime.JSX.Element;
|
|
917
1046
|
|
|
918
1047
|
declare const FeatureDisabled: () => react_jsx_runtime.JSX.Element;
|
|
919
1048
|
|
|
@@ -939,27 +1068,27 @@ declare const MediaEmbedItem: ({ alt, src }: MediaEmbedItemProps) => react_jsx_r
|
|
|
939
1068
|
|
|
940
1069
|
declare const PermissionDisabled: () => react_jsx_runtime.JSX.Element;
|
|
941
1070
|
|
|
942
|
-
interface Props$
|
|
1071
|
+
interface Props$3 {
|
|
943
1072
|
label: string;
|
|
944
1073
|
value?: string;
|
|
945
1074
|
colSpan?: number;
|
|
946
1075
|
}
|
|
947
|
-
declare const ShowLargeText: (props: Props$
|
|
1076
|
+
declare const ShowLargeText: (props: Props$3) => react_jsx_runtime.JSX.Element;
|
|
948
1077
|
|
|
949
|
-
interface Props$
|
|
1078
|
+
interface Props$2 {
|
|
950
1079
|
label: string;
|
|
951
1080
|
value?: string;
|
|
952
1081
|
}
|
|
953
|
-
declare const ShowShortText: (props: Props$
|
|
1082
|
+
declare const ShowShortText: (props: Props$2) => react_jsx_runtime.JSX.Element;
|
|
954
1083
|
|
|
955
|
-
type Props = {
|
|
1084
|
+
type Props$1 = {
|
|
956
1085
|
src: string;
|
|
957
1086
|
width: number;
|
|
958
1087
|
height: number;
|
|
959
1088
|
alt?: string;
|
|
960
1089
|
className?: string;
|
|
961
1090
|
};
|
|
962
|
-
declare const SizedImage: (props: Props) => react_jsx_runtime.JSX.Element;
|
|
1091
|
+
declare const SizedImage: (props: Props$1) => react_jsx_runtime.JSX.Element;
|
|
963
1092
|
|
|
964
1093
|
declare const UnderConstruction: () => react_jsx_runtime.JSX.Element;
|
|
965
1094
|
|
|
@@ -968,12 +1097,36 @@ type DisplayItem = {
|
|
|
968
1097
|
label: any;
|
|
969
1098
|
};
|
|
970
1099
|
|
|
1100
|
+
interface FeaturedItemProps {
|
|
1101
|
+
featuredItem: {
|
|
1102
|
+
name: string;
|
|
1103
|
+
bannerImageUrl: string;
|
|
1104
|
+
landscapeBannerUrl: string;
|
|
1105
|
+
portraitBannerUrl?: string;
|
|
1106
|
+
}[];
|
|
1107
|
+
itemDetails: {
|
|
1108
|
+
id: string;
|
|
1109
|
+
name: string;
|
|
1110
|
+
externalWebsiteLink?: string;
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
declare const FeaturedItemWithBannerImage: (props: FeaturedItemProps) => react_jsx_runtime.JSX.Element;
|
|
1114
|
+
|
|
971
1115
|
interface HeroImageProps {
|
|
972
1116
|
path: string | undefined;
|
|
973
1117
|
cmsUrl: string;
|
|
974
1118
|
}
|
|
975
1119
|
declare const HeroImage: ({ path, cmsUrl }: HeroImageProps) => react_jsx_runtime.JSX.Element;
|
|
976
1120
|
|
|
1121
|
+
interface HeroProps {
|
|
1122
|
+
path: string | undefined;
|
|
1123
|
+
title: string | null | undefined;
|
|
1124
|
+
description: string | null | undefined;
|
|
1125
|
+
google_marketplace_app?: string;
|
|
1126
|
+
apple_store_app?: string;
|
|
1127
|
+
}
|
|
1128
|
+
declare const HeroImageRightWithAppButtons: (props: HeroProps) => react_jsx_runtime.JSX.Element;
|
|
1129
|
+
|
|
977
1130
|
interface IPanelHorizontalProps {
|
|
978
1131
|
children: React.ReactNode;
|
|
979
1132
|
}
|
|
@@ -985,4 +1138,14 @@ interface LinkButtonItem {
|
|
|
985
1138
|
link?: string;
|
|
986
1139
|
}
|
|
987
1140
|
|
|
988
|
-
|
|
1141
|
+
interface Props {
|
|
1142
|
+
id: string;
|
|
1143
|
+
title: string;
|
|
1144
|
+
textBody: string;
|
|
1145
|
+
tag: string;
|
|
1146
|
+
button?: LinkButtonItem;
|
|
1147
|
+
bottomPadding?: string;
|
|
1148
|
+
}
|
|
1149
|
+
declare const H2BodyButton: (props: Props) => react_jsx_runtime.JSX.Element;
|
|
1150
|
+
|
|
1151
|
+
export { AboutInfoItem, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountIcon, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppItem, AppItemsList, AspectRatio, AtomIcon, Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, BigLandingTitle, BigLandingTitleAccent, Body12, Body12m, Body12sb, Body14, Body14m, Body14sb, Body15, Body15it, Body15m, Body15sb, Body16, Body16it, Body16m, Body16sb, Body18, Body18m, Body18sb, Body20, Body20m, Body20sb, BookTextIcon, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonContent, ButtonLink, ButtonProps$1 as ButtonProps, Calendar, CalendarIcon, CalendarProps, CameraIcon, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartLineDotsIcon, ChatsIcons, Checkbox$1 as Checkbox, ClipboardIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Cookies, CountryItem, CpuIcon, CustomImage, CustomTable, DeleteButton, DesignButton, Checkbox as DesignCheckbox, DesignFooter, DesignHeader, DesignHeaderProps, DesignInput, DesignInputProps, DesignRadioGroup, DesignRadioGroupItem, DesignResultTag, DesignSelect, DesignSelectContent, DesignSelectGroup, DesignSelectItem, DesignSelectLabel, DesignSelectSeparator, DesignSelectTrigger, DesignSelectValue, DesignSimpleTag, DesignSwitch, DesktopCodeIcon, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisplayItem, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ErrorMessage, FaqComponent, FarmerClusterPin, FarmerClustersIcon, FeatureDisabled, FeaturedItemWithBannerImage, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullPageLoader, GridDividersIcon, H1AccentDesign, H1Design, H2AccentDesign, H2BodyButton, H2Design, H3Design, H4Design, H5Design, H6Design, H7Design, H8Design, H9Design, HardDriveIcon, HeadphonesIcon, HeroImage, HeroImageRightWithAppButtons, Hexagon, HoverCard, HoverCardContent, HoverCardTrigger, IPanelHorizontalProps, Icon, IconPaths, IframeViewer, ImageIcon, InfoBox, Input, InputProps, KeyInfoItem, Label, LandingTitle, LandingTitleAccent, LastUpdatedTag, LayerGroupIcon, LegendIcon, LinkButtonItem, Loader, LoaderFull, LocalLoader, LocationIcon, MapIcon, MapLayersIcon, MapLegendIcon, MediaEmbedItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Microscope, MicroscopeIcon, MinusIcon, MultiSelect, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoResults, ObservationPin, OldButton, OldCustomInput, OverlayIcon, Pagination, PanelHorizontal, PermissionDisabled, PlusIcon, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PrimaryButton, Progress, RadioGroup, RadioGroupItem, ResourcesIcon, ResourcesQuickFind, ScrollArea, ScrollBar, Search, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, ShowLargeText, ShowShortText, SizedImage, Skeleton, Slider, StopWatchCheckIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableViewProps, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TagList, TagsGroup, TestWeight, TextArea, Textarea, TextareaProps, ThemeSwitcher, ThreeColumn, Toast$1 as Toast, ToastAction, ToastActionElement, ToastClose, ToastDescription, ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, Toggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UmamiAnalytics, UnderConstruction, UserGroupIcon, UsersGroup, VersionDisplay, VideoPlayIcon, XIcon, badgeVariants, buttonVariants, cn, designButtonVariants, getPages, navigationMenuTriggerStyle, reducer, toast, toggleVariants, useDebounce, useFormField, useToast };
|