duoop-ui 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -200
- package/THIRD_PARTY_NOTICES.md +116 -116
- package/lib/index.js +2657 -2255
- package/lib/styles.css +1743 -1364
- package/package.json +80 -79
package/README.md
CHANGED
|
@@ -1,201 +1,132 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<img src="public/armadillo-logo.png" alt="Duoop UI armadillo" width="88" />
|
|
4
|
-
|
|
5
|
-
# Duoop UI
|
|
6
|
-
|
|
7
|
-
### Interfaces you can feel. Source code you can own.
|
|
8
|
-
|
|
9
|
-
Tactile React components with crisp outlines, playful motion, and satisfying feedback.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[
|
|
14
|
-
|
|
15
|
-
[ to `src/example.css`, including the foundation and local dependencies. The settings example stores test data under `duoop-example-settings-v1`; replace `readSettings()` and `save()` with your API.
|
|
148
|
-
|
|
149
|
-
On Windows, if npm reports `UNABLE_TO_VERIFY_LEAF_SIGNATURE` and your network certificate is in the system store, use Node.js 24 and set `$env:NODE_USE_SYSTEM_CA = '1'` in PowerShell before installing. This preserves TLS verification.
|
|
150
|
-
|
|
151
|
-
## Develop and test
|
|
152
|
-
|
|
153
|
-
Catalog tooling requires **Node.js 22.18+ in the 22.x line, or 24.11+**, and npm.
|
|
154
|
-
|
|
155
|
-
```sh
|
|
156
|
-
git clone https://github.com/gus-rlin/Duoop-UI.git
|
|
157
|
-
cd Duoop-UI
|
|
158
|
-
npm ci
|
|
159
|
-
npm run dev
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
| Command | Purpose |
|
|
163
|
-
| --- | --- |
|
|
164
|
-
| `npm run build` | Build the static site into `dist/`. |
|
|
165
|
-
| `npm run build:lib` | Build the npm library into `lib/`. |
|
|
166
|
-
| `npm pack` | Build and create the installable `duoop-ui-1.0.0.tgz` archive. |
|
|
167
|
-
| `npm run test:package` | Install the archive in an isolated app; verify exports, build, styling and interaction. |
|
|
168
|
-
| `npm run preview` | Preview the production build. |
|
|
169
|
-
| `npm test` | Build, check imports, run public browser/SEO tests, and build downloaded projects. |
|
|
170
|
-
| `npm run test:primitives` | Run detailed primitive suites against a dev server on port 5176. |
|
|
171
|
-
| `npm run test:a11y` | Audit galleries against a dev server on port 5176. |
|
|
172
|
-
| `npm run test:pages` | Build and test downloaded pages after `npm test`. |
|
|
173
|
-
| `npm run test:integration` | Verify the README button in a fresh Vite app; requires npm access. |
|
|
174
|
-
|
|
175
|
-
Install Chromium with `npx playwright install chromium`. For a fixed dev port, run `npm run dev -- --port 5176 --strictPort`; `TEST_URL` overrides the primitive suites' server address. Reports and screenshots go to the ignored `artifacts/` directory.
|
|
176
|
-
|
|
177
|
-
GitHub CI runs the production build, import checks, and SEO browser tests. See [VALIDATION.md](VALIDATION.md) for historical results and known limitations. Automated accessibility checks are not a comprehensive certification.
|
|
178
|
-
|
|
179
|
-
## Deployment
|
|
180
|
-
|
|
181
|
-
### npm release
|
|
182
|
-
|
|
183
|
-
Run `npm run test:package` before releasing (Chromium must be installed). Review `npm pack --dry-run`, verify that you control the npm package name, and sign in with `npm login`. Set the release version with `npm version <version>`, then run `npm publish --access public`. The `prepack` hook rebuilds the library for packing and publishing. Registry publication is a separate maintainer action; this repository does not publish automatically. Once the first release is available, update the pending-release instructions here and on the Installation page.
|
|
184
|
-
|
|
185
|
-
### Documentation site
|
|
186
|
-
|
|
187
|
-
The live site is on [Cloudflare Pages](https://duoop-ui.pages.dev/). Deploy `dist/` over HTTPS for clipboard access. Query-based deep links do not need route rewrites. Preserve public TXT/XML files and allow required remote demo assets in any CSP. See [SEO.md](SEO.md).
|
|
188
|
-
|
|
189
|
-
Legacy personal entries in `duoop-ui.components.v1` are no longer displayed; their stored data is not deleted or rewritten.
|
|
190
|
-
|
|
191
|
-
## Contribute
|
|
192
|
-
|
|
193
|
-
Start with [CONTRIBUTING.md](CONTRIBUTING.md), follow the [design guidelines](design.md), and use the [issue templates](https://github.com/gus-rlin/Duoop-UI/issues/new/choose) for bugs and ideas.
|
|
194
|
-
|
|
195
|
-
Useful entry points: [catalog metadata](src/catalog/catalog.js), [integration recipes](src/catalog/recipes.js), [source bundling](src/catalog/source-bundle.js), and [code documentation](src/components/Button/Documentation.jsx).
|
|
196
|
-
|
|
197
|
-
If Duoop helps you build something, a GitHub star helps others discover it.
|
|
198
|
-
|
|
199
|
-
## License
|
|
200
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="public/armadillo-logo.png" alt="Duoop UI armadillo" width="88" />
|
|
4
|
+
|
|
5
|
+
# Duoop UI
|
|
6
|
+
|
|
7
|
+
### Interfaces you can feel. Source code you can own.
|
|
8
|
+
|
|
9
|
+
Tactile React components with crisp outlines, playful motion, and satisfying feedback.
|
|
10
|
+
|
|
11
|
+
**46 components across 7 categories — interactive previews, source code, and downloadable examples.**
|
|
12
|
+
|
|
13
|
+
[**Explore the live catalog →**](https://duoop-ui.com/) · [Components](https://duoop-ui.com/?page=components) · [Installation](https://duoop-ui.com/?page=installation) · [Page examples](https://duoop-ui.com/?page=examples)
|
|
14
|
+
|
|
15
|
+
[](https://github.com/gus-rlin/Duoop-UI/actions/workflows/ci.yml)
|
|
16
|
+
[](LICENSE)
|
|
17
|
+
[](https://react.dev/)
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
[](https://duoop-ui.com/)
|
|
22
|
+
|
|
23
|
+
## Why Duoop?
|
|
24
|
+
|
|
25
|
+
- **A distinctive feel.** Raised surfaces, short shadows, expressive SVGs, and motion that responds to your actions.
|
|
26
|
+
- **Source included.** Preview, inspect, and copy complete JSX and CSS files, including local helpers.
|
|
27
|
+
- **Runnable downloads.** Download a Vite project with the displayed example, styles, and dependencies.
|
|
28
|
+
- **Plain React and CSS.** No Tailwind setup, custom CLI, or global provider required for a basic button.
|
|
29
|
+
- **Interaction matters.** Keyboard behavior, visible focus, reduced motion, and clear action feedback are part of the design.
|
|
30
|
+
|
|
31
|
+
**Duoop UI is published on npm as `duoop-ui`.** Install the library with npm to use its components in your React application. This repository contains the library source and documentation site, under Apache 2.0.
|
|
32
|
+
|
|
33
|
+
## Install the library
|
|
34
|
+
|
|
35
|
+
Install the published [duoop-ui package](https://www.npmjs.com/package/duoop-ui) in your React 19 application:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npm i duoop-ui
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The package installs its runtime dependencies automatically. React and React DOM are peer dependencies supplied by your React 19 application.
|
|
42
|
+
|
|
43
|
+
Import the stylesheet once in your application entry, then import components by name:
|
|
44
|
+
|
|
45
|
+
```jsx
|
|
46
|
+
import { Button, Card } from 'duoop-ui';
|
|
47
|
+
import 'duoop-ui/styles.css';
|
|
48
|
+
|
|
49
|
+
export default function App() {
|
|
50
|
+
return <Card><Button onClick={() => alert('Hello!')}>Press me</Button></Card>;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The ESM package contains all public components, their compound components and helpers, including `IconButton`. It excludes the catalogue, demos and development tools. Your bundler can remove unused JavaScript exports; the single stylesheet includes the full collection, the shared foundation and Leaflet styles. The foundation sets page defaults such as body margin and font, so import your application overrides afterwards. DM Sans remains an optional font installation.
|
|
55
|
+
|
|
56
|
+
Use a React bundler such as Vite. For Next.js, import the stylesheet in the root layout and use interactive components from a client component; the library entry preserves its `"use client"` boundary. Next.js and server rendering have not been separately validated. Dedicated TypeScript declarations are not supplied.
|
|
57
|
+
|
|
58
|
+
## Explore the collection
|
|
59
|
+
|
|
60
|
+
**46 components · 7 categories**, each with downloadable examples. The collection includes Breadcrumb and Separator, plus Tooltip, Popover, Slider, Calendar, Date Picker, Table, Pagination, Sheet, File Upload, Skeleton and Alert. See [integration notes and verification](docs/essential-components.md).
|
|
61
|
+
|
|
62
|
+
| Collection | Explore |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| Buttons | [Raised buttons and reactions](https://duoop-ui.com/?category=Buttons) |
|
|
65
|
+
| Forms | [Inputs, selection, and validation](https://duoop-ui.com/?category=Forms) |
|
|
66
|
+
| Navigation | [Menus and tabs](https://duoop-ui.com/?category=Navigation) |
|
|
67
|
+
| Cards | [Cards and composed layouts](https://duoop-ui.com/?category=Cards) |
|
|
68
|
+
| Feedback | [Toasts and progress](https://duoop-ui.com/?category=Feedback) |
|
|
69
|
+
| Motion | [Animated text and expressive interactions](https://duoop-ui.com/?category=Motion) |
|
|
70
|
+
| Display | [Avatars, maps, and more](https://duoop-ui.com/?category=Display) |
|
|
71
|
+
|
|
72
|
+
Explore the [outdoor adventure landing page](https://duoop-ui.com/?page=examples&example=landing), the current public page example, with [source](src/examples/LandingPage.jsx), styles and a runnable download. [SettingsPage.jsx](src/examples/SettingsPage.jsx) remains a source-only example in the repository; it is not listed in the public catalog. Example brands, pricing, forms, and persistence are demonstrations; connect your own services when adapting them.
|
|
73
|
+
|
|
74
|
+
## Optional: own the source files
|
|
75
|
+
|
|
76
|
+
For direct edits to a component implementation, follow the [source-copy guide](docs/source-installation.md), or choose **Download project** in the catalog for a complete Vite example. These are optional ways to use the same components. The npm installation above is complete on its own.
|
|
77
|
+
|
|
78
|
+
## Develop and test
|
|
79
|
+
|
|
80
|
+
Catalog tooling requires **Node.js 22.18+ in the 22.x line, or 24.11+**, and npm.
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
git clone https://github.com/gus-rlin/Duoop-UI.git
|
|
84
|
+
cd Duoop-UI
|
|
85
|
+
npm ci
|
|
86
|
+
npm run dev
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
| Command | Purpose |
|
|
90
|
+
| --- | --- |
|
|
91
|
+
| `npm run build` | Build the static site into `dist/`. |
|
|
92
|
+
| `npm run build:lib` | Build the npm library into `lib/`. |
|
|
93
|
+
| `npm pack` | Build and create the installable `duoop-ui-1.0.1.tgz` archive. |
|
|
94
|
+
| `npm run test:package` | Install the archive in an isolated app; verify exports, build, styling and interaction. |
|
|
95
|
+
| `npm run preview` | Preview the production build. |
|
|
96
|
+
| `npm run test:docs` | Check documentation counts, public URLs, local links and documented npm scripts against the project. |
|
|
97
|
+
| `npm test` | Run documentation checks, build, check imports, run essentials and public browser/SEO tests, then build downloaded projects. See current limitations in VALIDATION.md. |
|
|
98
|
+
| `npm run test:essentials` | Start its own server and check the eleven essential component families. |
|
|
99
|
+
| `npm run test:essential-downloads` | Start its own server, download and build essential starters and gallery variants. |
|
|
100
|
+
| `npm run test:navigation` | Start its own server and check Breadcrumb and Separator. |
|
|
101
|
+
| `npm run test:primitives` | Run detailed primitive suites against a dev server on port 5176. |
|
|
102
|
+
| `npm run test:a11y` | Audit galleries against a dev server on port 5176. |
|
|
103
|
+
| `npm run test:pages` | Legacy two-page regression script; requires old downloads and selectors. See VALIDATION.md before using. |
|
|
104
|
+
| `npm run test:integration` | Verify the optional source-copy guide in a fresh Vite app; requires npm access. |
|
|
105
|
+
|
|
106
|
+
Install Chromium with `npx playwright install chromium`. For a fixed dev port, run `npm run dev -- --port 5176 --strictPort`. Most primitive suites accept `TEST_URL`, but some diagnostic scripts use fixed addresses; keep port 5176 for the combined run. Reports and screenshots go to the ignored `artifacts/` directory.
|
|
107
|
+
|
|
108
|
+
GitHub CI runs documentation checks, the production build, import checks, package installation tests, essential-component browser checks, and SEO browser tests. See [VALIDATION.md](VALIDATION.md) for verification scope and known limitations. Automated accessibility checks are not a comprehensive certification.
|
|
109
|
+
|
|
110
|
+
## Deployment
|
|
111
|
+
|
|
112
|
+
Maintainer instructions for [packing and publishing a new npm release](CONTRIBUTING.md#publish-a-new-npm-release-maintainers) are in the contribution guide.
|
|
113
|
+
|
|
114
|
+
### Documentation site
|
|
115
|
+
|
|
116
|
+
The live site is on [Cloudflare Pages](https://duoop-ui.com/). Deploy `dist/` over HTTPS for clipboard access. Query-based deep links do not need route rewrites. Preserve public TXT/XML files and allow required remote demo assets in any CSP. See [SEO.md](SEO.md).
|
|
117
|
+
|
|
118
|
+
Legacy personal entries in `duoop-ui.components.v1` are no longer displayed; their stored data is not deleted or rewritten.
|
|
119
|
+
|
|
120
|
+
## Contribute
|
|
121
|
+
|
|
122
|
+
Start with [CONTRIBUTING.md](CONTRIBUTING.md), follow the [design guidelines](design.md), and use the [issue templates](https://github.com/gus-rlin/Duoop-UI/issues/new/choose) for bugs and ideas.
|
|
123
|
+
|
|
124
|
+
Useful entry points: [catalog metadata](src/catalog/catalog.js), [integration recipes](src/catalog/recipes.js), [source bundling](src/catalog/source-bundle.js), and [code documentation](src/components/Button/Documentation.jsx).
|
|
125
|
+
|
|
126
|
+
Documentation ownership and the update checklist are in [CONTRIBUTING.md](CONTRIBUTING.md#keep-documentation-consistent). Catalog counts come from `entries` and `categories` in `src/catalog/catalog.js`; package requirements come from `package.json`; canonical URLs come from `src/catalog/seo.js`. Counts refer to catalog entries, not the larger set of exported compound components and helpers.
|
|
127
|
+
|
|
128
|
+
If Duoop helps you build something, a GitHub star helps others discover it.
|
|
129
|
+
|
|
130
|
+
## License
|
|
131
|
+
|
|
201
132
|
[Apache License 2.0](LICENSE). Preserve required license and attribution notices. Third-party dependencies and demo assets retain their own terms.
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
# Third-party component foundations
|
|
2
|
-
|
|
3
|
-
Duoop adapts the official composition examples and uses the unstyled runtime packages below. Duoop CSS, demos and integration are maintained in this repository. Dependency source is installed through npm, rather than vendored.
|
|
4
|
-
|
|
5
|
-
- Radix Primitives — Tooltip, Popover, Slider and Dialog (Sheet): https://github.com/radix-ui/primitives and https://www.radix-ui.com/primitives/docs/components
|
|
6
|
-
- React DayPicker v9 — Calendar and Date Picker: https://github.com/gpbl/react-day-picker and https://daypicker.dev/v9
|
|
7
|
-
- React Dropzone — file selection and validation: https://github.com/react-dropzone/react-dropzone
|
|
8
|
-
|
|
9
|
-
The following MIT notices are retained for these foundations and accompanying examples. Other transitive dependencies retain their own notices in their npm distributions.
|
|
10
|
-
|
|
11
|
-
## Radix Primitives
|
|
12
|
-
MIT License
|
|
13
|
-
|
|
14
|
-
Copyright (c) 2022 WorkOS
|
|
15
|
-
|
|
16
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
18
|
-
in the Software without restriction, including without limitation the rights
|
|
19
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
21
|
-
furnished to do so, subject to the following conditions:
|
|
22
|
-
|
|
23
|
-
The above copyright notice and this permission notice shall be included in all
|
|
24
|
-
copies or substantial portions of the Software.
|
|
25
|
-
|
|
26
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
27
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
28
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
29
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
31
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
|
-
SOFTWARE.
|
|
33
|
-
|
|
34
|
-
## React DayPicker
|
|
35
|
-
|
|
36
|
-
The MIT License (MIT)
|
|
37
|
-
|
|
38
|
-
Copyright (c) 2014-2025 Giampaolo Bellavite <io@gpbl.dev> and contributors
|
|
39
|
-
|
|
40
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
41
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
42
|
-
in the Software without restriction, including without limitation the rights
|
|
43
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
44
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
45
|
-
furnished to do so, subject to the following conditions:
|
|
46
|
-
|
|
47
|
-
The above copyright notice and this permission notice shall be included in all
|
|
48
|
-
copies or substantial portions of the Software.
|
|
49
|
-
|
|
50
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
51
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
52
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
53
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
54
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
55
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
56
|
-
SOFTWARE.
|
|
57
|
-
|
|
58
|
-
## React Dropzone
|
|
59
|
-
|
|
60
|
-
The MIT License (MIT)
|
|
61
|
-
|
|
62
|
-
Copyright (c) 2018 Param Aggarwal
|
|
63
|
-
|
|
64
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
65
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
66
|
-
in the Software without restriction, including without limitation the rights
|
|
67
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
68
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
69
|
-
furnished to do so, subject to the following conditions:
|
|
70
|
-
|
|
71
|
-
The above copyright notice and this permission notice shall be included in all
|
|
72
|
-
copies or substantial portions of the Software.
|
|
73
|
-
|
|
74
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
75
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
76
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
77
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
78
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
79
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
80
|
-
SOFTWARE.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
## Breadcrumb and Separator adaptations
|
|
85
|
-
|
|
86
|
-
Breadcrumb adapts shadcn/ui's composable breadcrumb source (https://github.com/shadcn-ui/ui/blob/main/apps/v4/registry/new-york-v4/ui/breadcrumb.tsx), replacing Tailwind, Slot and Lucide with local CSS and native elements. Separator adapts the orientation and decorative semantics from https://github.com/radix-ui/primitives/blob/main/packages/react/separator/src/separator.tsx using a native div; the Radix MIT notice above applies. No new runtime dependencies are required.
|
|
87
|
-
|
|
88
|
-
## shadcn/ui
|
|
89
|
-
|
|
90
|
-
MIT License
|
|
91
|
-
|
|
92
|
-
Copyright (c) 2023 shadcn
|
|
93
|
-
|
|
94
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
95
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
96
|
-
in the Software without restriction, including without limitation the rights
|
|
97
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
98
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
99
|
-
furnished to do so, subject to the following conditions:
|
|
100
|
-
|
|
101
|
-
The above copyright notice and this permission notice shall be included in all
|
|
102
|
-
copies or substantial portions of the Software.
|
|
103
|
-
|
|
104
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
105
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
106
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
107
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
108
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
109
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
110
|
-
SOFTWARE.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
## Leaflet
|
|
114
|
-
|
|
115
|
-
The library stylesheet includes Leaflet CSS and its referenced marker images.
|
|
116
|
-
|
|
1
|
+
# Third-party component foundations
|
|
2
|
+
|
|
3
|
+
Duoop adapts the official composition examples and uses the unstyled runtime packages below. Duoop CSS, demos and integration are maintained in this repository. Dependency source is installed through npm, rather than vendored.
|
|
4
|
+
|
|
5
|
+
- Radix Primitives — Tooltip, Popover, Slider and Dialog (Sheet): https://github.com/radix-ui/primitives and https://www.radix-ui.com/primitives/docs/components
|
|
6
|
+
- React DayPicker v9 — Calendar and Date Picker: https://github.com/gpbl/react-day-picker and https://daypicker.dev/v9
|
|
7
|
+
- React Dropzone — file selection and validation: https://github.com/react-dropzone/react-dropzone
|
|
8
|
+
|
|
9
|
+
The following MIT notices are retained for these foundations and accompanying examples. Other transitive dependencies retain their own notices in their npm distributions.
|
|
10
|
+
|
|
11
|
+
## Radix Primitives
|
|
12
|
+
MIT License
|
|
13
|
+
|
|
14
|
+
Copyright (c) 2022 WorkOS
|
|
15
|
+
|
|
16
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
18
|
+
in the Software without restriction, including without limitation the rights
|
|
19
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
21
|
+
furnished to do so, subject to the following conditions:
|
|
22
|
+
|
|
23
|
+
The above copyright notice and this permission notice shall be included in all
|
|
24
|
+
copies or substantial portions of the Software.
|
|
25
|
+
|
|
26
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
27
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
28
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
29
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
31
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
|
+
SOFTWARE.
|
|
33
|
+
|
|
34
|
+
## React DayPicker
|
|
35
|
+
|
|
36
|
+
The MIT License (MIT)
|
|
37
|
+
|
|
38
|
+
Copyright (c) 2014-2025 Giampaolo Bellavite <io@gpbl.dev> and contributors
|
|
39
|
+
|
|
40
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
41
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
42
|
+
in the Software without restriction, including without limitation the rights
|
|
43
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
44
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
45
|
+
furnished to do so, subject to the following conditions:
|
|
46
|
+
|
|
47
|
+
The above copyright notice and this permission notice shall be included in all
|
|
48
|
+
copies or substantial portions of the Software.
|
|
49
|
+
|
|
50
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
51
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
52
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
53
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
54
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
55
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
56
|
+
SOFTWARE.
|
|
57
|
+
|
|
58
|
+
## React Dropzone
|
|
59
|
+
|
|
60
|
+
The MIT License (MIT)
|
|
61
|
+
|
|
62
|
+
Copyright (c) 2018 Param Aggarwal
|
|
63
|
+
|
|
64
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
65
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
66
|
+
in the Software without restriction, including without limitation the rights
|
|
67
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
68
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
69
|
+
furnished to do so, subject to the following conditions:
|
|
70
|
+
|
|
71
|
+
The above copyright notice and this permission notice shall be included in all
|
|
72
|
+
copies or substantial portions of the Software.
|
|
73
|
+
|
|
74
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
75
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
76
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
77
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
78
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
79
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
80
|
+
SOFTWARE.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## Breadcrumb and Separator adaptations
|
|
85
|
+
|
|
86
|
+
Breadcrumb adapts shadcn/ui's composable breadcrumb source (https://github.com/shadcn-ui/ui/blob/main/apps/v4/registry/new-york-v4/ui/breadcrumb.tsx), replacing Tailwind, Slot and Lucide with local CSS and native elements. Separator adapts the orientation and decorative semantics from https://github.com/radix-ui/primitives/blob/main/packages/react/separator/src/separator.tsx using a native div; the Radix MIT notice above applies. No new runtime dependencies are required.
|
|
87
|
+
|
|
88
|
+
## shadcn/ui
|
|
89
|
+
|
|
90
|
+
MIT License
|
|
91
|
+
|
|
92
|
+
Copyright (c) 2023 shadcn
|
|
93
|
+
|
|
94
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
95
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
96
|
+
in the Software without restriction, including without limitation the rights
|
|
97
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
98
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
99
|
+
furnished to do so, subject to the following conditions:
|
|
100
|
+
|
|
101
|
+
The above copyright notice and this permission notice shall be included in all
|
|
102
|
+
copies or substantial portions of the Software.
|
|
103
|
+
|
|
104
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
105
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
106
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
107
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
108
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
109
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
110
|
+
SOFTWARE.
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
## Leaflet
|
|
114
|
+
|
|
115
|
+
The library stylesheet includes Leaflet CSS and its referenced marker images.
|
|
116
|
+
|
|
117
117
|
BSD 2-Clause License
|
|
118
118
|
|
|
119
119
|
Copyright (c) 2010-2023, Volodymyr Agafonkin
|