pdap-design-system 2.7.0-beta.2 → 2.7.0-beta.4

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.
Files changed (35) hide show
  1. package/README.md +39 -47
  2. package/dist/components/Breadcrumbs/PdapBreadcrumbs.vue.d.ts +9 -0
  3. package/dist/components/Breadcrumbs/index.d.ts +1 -2
  4. package/dist/components/Button/PdapButton.vue.d.ts +9 -0
  5. package/dist/components/Button/index.d.ts +1 -2
  6. package/dist/components/Dropdown/PdapDropdown.vue.d.ts +56 -0
  7. package/dist/components/Dropdown/index.d.ts +1 -0
  8. package/dist/components/Dropdown/types.d.ts +9 -0
  9. package/dist/components/ErrorBoundary/PdapErrorBoundary.vue.d.ts +82 -16
  10. package/dist/components/ErrorBoundary/index.d.ts +1 -0
  11. package/dist/components/ErrorBoundary/types.d.ts +11 -0
  12. package/dist/components/Footer/PdapFooter.vue.d.ts +8 -0
  13. package/dist/components/Form/PdapForm.vue.d.ts +105 -2
  14. package/dist/components/Header/PdapHeader.vue.d.ts +11 -0
  15. package/dist/components/Nav/PdapNav.vue.d.ts +37 -0
  16. package/dist/components/QuickSearchForm/QuickSearchForm.vue.d.ts +14 -0
  17. package/dist/components/TileIcon/TileIcon.vue.d.ts +3 -0
  18. package/dist/components/index.d.ts +2 -3
  19. package/dist/directives/click-outside.d.ts +16 -0
  20. package/dist/directives/index.d.ts +1 -0
  21. package/dist/index.cjs +2 -2
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +961 -879
  24. package/dist/styles.css +1 -1
  25. package/docs/components.md +13 -584
  26. package/package.json +3 -2
  27. package/dist/components/FlexContainer/FlexContainer.vue.d.ts +0 -37
  28. package/dist/components/FlexContainer/index.d.ts +0 -2
  29. package/dist/components/FlexContainer/types.d.ts +0 -4
  30. package/dist/components/GridContainer/GridContainer.vue.d.ts +0 -40
  31. package/dist/components/GridContainer/index.d.ts +0 -2
  32. package/dist/components/GridContainer/types.d.ts +0 -7
  33. package/dist/components/GridItem/GridItem.vue.d.ts +0 -40
  34. package/dist/components/GridItem/index.d.ts +0 -2
  35. package/dist/components/GridItem/types.d.ts +0 -5
package/README.md CHANGED
@@ -1,15 +1,11 @@
1
1
  # PDAP Design System
2
- _A `Vue` component library, styling system, and image asset repository for PDAP-branded client apps._
3
2
 
4
- [![Current npm release](https://img.shields.io/npm/v/pdap-design-system?style=for-the-badge)](https://www.npmjs.com/package/pdap-design-system)
5
- ![Build status](https://img.shields.io/github/actions/workflow/status/Police-Data-Accessibility-Project/design-system/build.yaml?branch=main&style=for-the-badge)
6
- ![Coverage Badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/joshuagraber/f3a173e87a763056b73438f503680993/raw/ff7d81845d17020e8a2bc01481d3cda512a15698/pdap-design-system__heads_main.json)
7
- ![License](https://img.shields.io/github/license/Police-Data-Accessibility-Project/design-system.svg?style=for-the-badge&color=green)
3
+ _A `Vue` component library, styling system, and image asset repository for PDAP-branded client apps._
8
4
 
5
+ [![Current npm release](https://img.shields.io/npm/v/pdap-design-system?style=for-the-badge)](https://www.npmjs.com/package/pdap-design-system) ![Build status](https://img.shields.io/github/actions/workflow/status/Police-Data-Accessibility-Project/design-system/build.yaml?branch=main&style=for-the-badge) ![Coverage Badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/joshuagraber/f3a173e87a763056b73438f503680993/raw/pdap-design-system__heads_main.json) ![License](https://img.shields.io/github/license/Police-Data-Accessibility-Project/design-system.svg?style=for-the-badge&color=green)
9
6
 
10
7
  [![Discord](https://img.shields.io/discord/828274060034965575?logo=discord&style=for-the-badge&color=blue)](https://discord.gg/vKhDv7nC8B)
11
8
 
12
-
13
9
  ## Usage
14
10
 
15
11
  1. Install the package
@@ -18,7 +14,7 @@ _A `Vue` component library, styling system, and image asset repository for PDAP-
18
14
  npm install pdap-design-system
19
15
  ```
20
16
 
21
- 2. Import the stylesheet in the app's entrypoint (usually `index.js` or `main.js`, at the root of your project)
17
+ 1. Import the stylesheet in the app's entrypoint (usually `index.js` or `main.js`, at the root of your project)
22
18
 
23
19
  ```
24
20
  // index.js | main.js
@@ -26,27 +22,25 @@ npm install pdap-design-system
26
22
  import 'pdap-design-system/styles';
27
23
  ```
28
24
 
29
- 3. Import and use the components
25
+ 1. Import and use the components
30
26
 
31
27
  ```
32
28
  import { Button, Form } from 'pdap-design-system';
33
29
  ```
34
30
 
35
- 1. Extend the `es-lint` config, for consistency in linting between client apps:
36
- First `npm install --save-dev @pdap-design-system/eslint-config`, then, in `eslintrc`:
31
+ 1. Extend the `es-lint` config, for consistency in linting between client apps: First `npm install --save-dev @pdap-design-system/eslint-config`, then, in `eslintrc`:
37
32
 
38
33
  ```
39
34
  {
40
35
  ...,
41
- extends: [
42
- "@pdap-design-system/eslint-config",
36
+ extends: [
37
+ "@pdap-design-system/eslint-config",
43
38
  ...
44
- ],
39
+ ],
45
40
  }
46
41
  ```
47
42
 
48
-
49
- 5. (Optional) Import the tailwind config if you need to use additional tailwind styles.
43
+ 1. (Optional) Import the tailwind config if you need to use additional tailwind styles.
50
44
 
51
45
  ```
52
46
  // tailwind.config.js
@@ -62,17 +56,16 @@ module.exports = {
62
56
  "./src/**/*.{vue,js,css}",
63
57
  ],
64
58
  }
65
-
66
59
  ```
67
60
 
68
- 6. If the project is using `TypeScript`, the component props definitions and other types are exposed for import as well.
69
- _n.b. This can be particularly useful for composing `Form` schemas, where `Input` schema objects are defined differently depending on the `type` of input desired._
61
+ 1. If the project is using `TypeScript`, the component props definitions and other types are exposed for import as well.<br>
62
+ _n.b. This can be particularly useful for composing `Form` schemas, where `Input` schema objects are defined differently depending on the `type` of input desired._
70
63
 
71
64
  ```
72
65
  import { PdapInputTypes } from 'pdap-design-system';
73
66
  ```
74
67
 
75
- 6. See [the component documentation](./docs/components.md) for details on each component's API.
68
+ 1. See [the component documentation](./docs/components.md) for details on each component's API.
76
69
 
77
70
  ### About images
78
71
 
@@ -96,16 +89,16 @@ import `pdap-design-system/images`;
96
89
  gh repo clone Police-Data-Accessibility-Project/design-system
97
90
  ```
98
91
 
99
- 2. CD into the project directory and install dependencies
92
+ 1. CD into the project directory and install dependencies
100
93
 
101
94
  ```
102
95
  cd design-system
103
96
  npm i
104
97
  ```
105
98
 
106
- 3. Step 2 should result in the `build` script being run after packages are installed. Check the `dist` directory for changes. You then may want to take one or both of the following steps:
99
+ 1. Step 2 should result in the `build` script being run after packages are installed. Check the `dist` directory for changes. You then may want to take one or both of the following steps:
107
100
 
108
- - If `build` wasn't called when you installed deps, build styles and images to the `dist` directory:
101
+ 2. If `build` wasn't called when you installed deps, build styles and images to the `dist` directory:
109
102
 
110
103
  ```
111
104
  npm run build
@@ -117,39 +110,38 @@ npm run build
117
110
  npm run build:watch
118
111
  ```
119
112
 
120
- 4. If you use VS Code as your editor, you may want to install the [tailwind VS Code extension](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss), which helps with intellisense and the custom at-rules used by TailwindCSS.
113
+ 1. If you use VS Code as your editor, you may want to install the [tailwind VS Code extension](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss), which helps with intellisense and the custom at-rules used by TailwindCSS.
121
114
 
122
- 5. Read the [contributing guide](./CONTRIBUTING.md) for development requirements and tips.
115
+ 2. Read the [contributing guide](./CONTRIBUTING.md) for development requirements and tips.
123
116
 
124
117
  ## Assets
125
118
 
126
- Use these [brand assets](https://docs.pdap.io/meta/about/staff/brand-assets).
127
- Use this [terminology](https://docs.pdap.io/activities/terms-and-definitions).
119
+ Use these [brand assets](https://docs.pdap.io/meta/about/staff/brand-assets). Use this [terminology](https://docs.pdap.io/activities/terms-and-definitions).
128
120
 
129
121
  ## Scripts reference
130
122
 
131
- | Script | What it does |
132
- | -------------- | -------------------------------------------------------- |
133
- | `_commit` | Create conventional commits |
134
- | `build` | Builds the library |
135
- | `build:watch` | Builds the library and watches for file changes |
136
- | `ci` | Remove all generated files and re-installs deps |
137
- | `clean` | Remove all generated files (except `package-lock.json`) |
138
- | `clean:deps` | Remove node_modules directory |
139
- | `clean:build` | Remove dist directory |
140
- | `clean:test` | Remove testing coverage reports |
141
- | `lint` | Lint everything |
142
- | `lint:es` | Lint `ts` and `vue` with `eslint` |
143
- | `lint:css` | Lint `css` and `vue` with `stylelint` |
144
- | `lint:ts` | Lint `ts` with `tsc` |
145
- | `test` | Run all test suites |
146
- | `test:changed` | Run only test suites affected by changed files |
147
- | `typecheck` | Run type check on all `ts` and `vue` files |
148
- | `dev` | Run demo app to check visual changes to components |
149
-
123
+ | Script | What it does |
124
+ | -------------- | ----------------------------------------------------------------------- |
125
+ | `_commit` | Create conventional commits |
126
+ | `build` | Builds the library |
127
+ | `build:watch` | Builds the library and watches for file changes |
128
+ | `ci` | Remove all generated files and re-installs deps |
129
+ | `clean` | Remove all generated files (except `package-lock.json`) |
130
+ | `clean:deps` | Remove node_modules directory |
131
+ | `clean:build` | Remove dist directory |
132
+ | `clean:test` | Remove testing coverage reports |
133
+ | `lint` | Lint everything |
134
+ | `lint:es` | Lint `ts` and `vue` with `eslint` |
135
+ | `lint:css` | Lint `css` and `vue` with `stylelint` |
136
+ | `lint:ts` | Lint `ts` with `tsc` |
137
+ | `test` | Run all test suites |
138
+ | `test:changed` | Run only test suites affected by changed files |
139
+ | `typecheck` | Run type check on all `ts` and `vue` files |
140
+ | `dev` | Run demo app to check visual changes to components |
141
+ | `docs` | Run script to automatically aggregate links to component `README` files |
150
142
 
151
143
  _n.b. There are some other scripts defined in the `package.json` `"scripts"` field, but they are mostly for CI or cleanup post-build, etc. You shouldn't need them._
152
144
 
153
145
  ## Releasing
154
- Incremental updates can be added to `main` directly via a PR.
155
- For more significant updates, the `beta` branch can be used for releasing incremental beta releases to test the bigger feature without releasing to production.
146
+
147
+ Incremental updates can be added to `main` directly via a PR. For more significant updates, the `beta` branch can be used for releasing incremental beta releases to test the bigger feature without releasing to production.
@@ -1,2 +1,11 @@
1
+ /**
2
+ * # `Breadcrumbs`
3
+ *
4
+ * Renders a hierarchy of matching links for all paths matching the current path.
5
+ *
6
+ * The rendered text of each link will default to the `name` value in each matching route's object, unless `meta.breadcrumbText` is set.
7
+ *
8
+ *
9
+ */
1
10
  declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
11
  export default _default;
@@ -1,2 +1 @@
1
- import PdapBreadcrumbs from './PdapBreadcrumbs.vue';
2
- export { PdapBreadcrumbs as Breadcrumbs };
1
+ export { default as Breadcrumbs } from './PdapBreadcrumbs.vue';
@@ -1,4 +1,13 @@
1
1
  import { PdapButtonProps } from './types';
2
+ /**
3
+ * # `Button`
4
+ * Styled button with PDAP branding. DOM attributes are forwarded to the HTML element, and most functionality works well this way.
5
+ *
6
+ * ## Props
7
+ * @prop {'primary' | 'secondary' | 'tertiary'} intent controls the styling of the button
8
+ * @prop {boolean} isLoading loading state of button
9
+ *
10
+ */
2
11
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapButtonProps>, {
3
12
  intent: string;
4
13
  isLoading: boolean;
@@ -1,2 +1 @@
1
- import PdapButton from './PdapButton.vue';
2
- export { PdapButton as Button };
1
+ export { default as Button } from './PdapButton.vue';
@@ -0,0 +1,56 @@
1
+ import { PdapDropdownProps, PdapDropdownTriggerType } from './types';
2
+ /**
3
+ * # `Dropdown`
4
+ * An accessible dropdown menu that can be triggered by click or hover and positioned in various placements. It provides keyboard accessibility features such as toggling the dropdown on enter/space and closing on escape.
5
+ *
6
+ * ## Props
7
+ * @prop {boolean} defaultOpen Controls the initial `isOpen` state
8
+ * @prop {boolean} disabled Disabled state (forwarded to trigger button)
9
+ * @prop {PdapDropdownTriggerType} triggerType `'press' | 'hover'`
10
+ *
11
+ */
12
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapDropdownProps>, {
13
+ defaultOpen: boolean;
14
+ disabled: boolean;
15
+ triggerOn: PdapDropdownTriggerType;
16
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ press: (...args: any[]) => void;
18
+ "update:open": (...args: any[]) => void;
19
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapDropdownProps>, {
20
+ defaultOpen: boolean;
21
+ disabled: boolean;
22
+ triggerOn: PdapDropdownTriggerType;
23
+ }>>> & {
24
+ onPress?: ((...args: any[]) => any) | undefined;
25
+ "onUpdate:open"?: ((...args: any[]) => any) | undefined;
26
+ }, {
27
+ defaultOpen: boolean;
28
+ disabled: boolean;
29
+ triggerOn: PdapDropdownTriggerType;
30
+ }, {}>, {
31
+ trigger?(_: {}): any;
32
+ content?(_: {}): any;
33
+ }>;
34
+ export default _default;
35
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
36
+ type __VLS_TypePropsToRuntimeProps<T> = {
37
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
38
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
39
+ } : {
40
+ type: import('vue').PropType<T[K]>;
41
+ required: true;
42
+ };
43
+ };
44
+ type __VLS_WithDefaults<P, D> = {
45
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
46
+ default: D[K];
47
+ }> : P[K];
48
+ };
49
+ type __VLS_Prettify<T> = {
50
+ [K in keyof T]: T[K];
51
+ } & {};
52
+ type __VLS_WithTemplateSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -0,0 +1 @@
1
+ export { default as Dropdown } from './PdapDropdown.vue';
@@ -0,0 +1,9 @@
1
+ export declare enum PdapDropdownTriggerType {
2
+ PRESS = "press",
3
+ HOVER = "hover"
4
+ }
5
+ export interface PdapDropdownProps {
6
+ defaultOpen?: boolean;
7
+ disabled?: boolean;
8
+ triggerOn?: PdapDropdownTriggerType;
9
+ }
@@ -1,18 +1,84 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- component: {
3
- type: StringConstructor;
4
- default: string;
5
- };
6
- }, any, {
7
- error: boolean;
8
- }, {}, {
9
- interceptError(error: any): void;
10
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
11
- component: {
12
- type: StringConstructor;
13
- default: string;
14
- };
15
- }>>, {
1
+ import { ComponentPublicInstance } from 'vue';
2
+ import { PdapErrorBoundaryProps, PdapErrorEmitted } from './types';
3
+ /**
4
+ * # `ErrorBoundary`
5
+ * Intercepts uncaught errors from its children and renders an error UI in place of its children.
6
+ *
7
+ * ## Props
8
+ * @prop {string} component Optional: the component to render as a fallback, defaults to 'div'
9
+ * @prop {PdapErrorBoundaryProps['onError']} onError Optional: callback to run on error, accepts two arguments, the error and the element (optional)
10
+ * @prop {Record<string, string>} params Optional: parameters to be forwarded to fallback
11
+ *
12
+ * ## Emits
13
+ * @emits onError includes object with `error`, and optionally `info` and `vm
14
+ *
15
+ * @example Top level
16
+ *
17
+ * <template>
18
+ * <AuthWrapper>
19
+ * <Header :logo-image-src="lockup" />
20
+ * <ErrorBoundary component="main">
21
+ * <router-view />
22
+ * </ErrorBoundary>
23
+ * <Footer :logo-image-src="acronym" />
24
+ * </AuthWrapper>
25
+ * </template>
26
+ *
27
+ * @example Within a component
28
+ <ErrorBoundary
29
+ class="col-span-full items-start"
30
+ component="div"
31
+ @on-error="({ error, vm, info }) => console.debug({ error, vm, info })"
32
+ >
33
+ <div class="col-span-full">
34
+ <p>
35
+ This is the content that will render inside the error boundary if
36
+ there is no error
37
+ </p>
38
+ <Button @click="triggerError">Click here to trigger error</Button>
39
+ </div>
40
+ </ErrorBoundary>
41
+ *
42
+ */
43
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapErrorBoundaryProps>, {
44
+ component: string;
45
+ onError: undefined;
46
+ params: undefined;
47
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
48
+ onError: (args_0: PdapErrorEmitted) => void;
49
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapErrorBoundaryProps>, {
16
50
  component: string;
17
- }, {}>;
51
+ onError: undefined;
52
+ params: undefined;
53
+ }>>> & {
54
+ onOnError?: ((args_0: PdapErrorEmitted) => any) | undefined;
55
+ }, {
56
+ params: Record<string, string>;
57
+ onError: (error: Error, target?: ComponentPublicInstance | null | undefined, info?: string | undefined) => void;
58
+ component: string;
59
+ }, {}>, {
60
+ default?(_: {}): any;
61
+ }>;
18
62
  export default _default;
63
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
64
+ type __VLS_TypePropsToRuntimeProps<T> = {
65
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
66
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
67
+ } : {
68
+ type: import('vue').PropType<T[K]>;
69
+ required: true;
70
+ };
71
+ };
72
+ type __VLS_WithDefaults<P, D> = {
73
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
74
+ default: D[K];
75
+ }> : P[K];
76
+ };
77
+ type __VLS_Prettify<T> = {
78
+ [K in keyof T]: T[K];
79
+ } & {};
80
+ type __VLS_WithTemplateSlots<T, S> = T & {
81
+ new (): {
82
+ $slots: S;
83
+ };
84
+ };
@@ -0,0 +1 @@
1
+ export { default as ErrorBoundary } from './PdapErrorBoundary.vue';
@@ -0,0 +1,11 @@
1
+ import { ComponentPublicInstance } from 'vue';
2
+ export interface PdapErrorEmitted {
3
+ error: Error;
4
+ vm: ComponentPublicInstance | null;
5
+ info?: string;
6
+ }
7
+ export interface PdapErrorBoundaryProps {
8
+ component: string;
9
+ onError?: (error: Error, target?: ComponentPublicInstance | null | undefined, info?: string) => void;
10
+ params?: Record<string, string>;
11
+ }
@@ -1,4 +1,12 @@
1
1
  import { PdapFooterProps } from './types';
2
+ /**
3
+ * # `Footer`
4
+ *
5
+ * ## Props
6
+ * @prop {string} logoImageSrc Src for the PDAP logo image to be displayed
7
+ * @prop {string } logoImageAnchorPath Path for the link that wraps the PDAP logo image
8
+ *
9
+ */
2
10
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapFooterProps>, {
3
11
  logoImageSrc: string;
4
12
  logoImageAnchorPath: string;
@@ -1,6 +1,109 @@
1
1
  import { PdapFormProps } from './types';
2
- declare const v$: import("vue").Ref<import("@vuelidate/core").Validation<{}, Record<string, string>>>;
3
- export type VuelidateInstance = typeof v$.value;
2
+ /**
3
+ * # `Form`
4
+ * The `Form` component is powerful. All you need to do is pass a few props, and the component will generate inputs and render them in the UI, complete with customizable form validation and both form-level and input-level error states.
5
+ *
6
+ *
7
+ * ## Props
8
+ * @prop {string | undefined | null} error Error state. Only a non-falsy string results in a form-level error being displayed
9
+ * @prop {string} id Passed through to the `form` element as its `id`
10
+ * @prop {string} name Passed through to the `form` element as its `name`
11
+ * @prop {PdapFormSchema} schema Array of `PdapFormInputProps` objects.
12
+ *
13
+ * ## Notes
14
+ *
15
+ * - Form schema entries can look different depending on the type of input. We currently only use text inputs, so the example only displays these.
16
+ * - To properly submit the form, you must render a button with `type="submit"` _inside_ of the `Form` component.
17
+ * - `Form` emits a `submit` event and passes all values to the handler you pass to `on-submit`
18
+ * - Currently available form validations are defined by the `PdapFormValidators` interface:
19
+ *
20
+ * ```
21
+ * PdapFormValidators {
22
+ * maxLength: {
23
+ * message?: string;
24
+ * value: number;
25
+ * };
26
+ * minLength: {
27
+ * message?: string;
28
+ * value: number;
29
+ * };
30
+ * required: {
31
+ * message?: string;
32
+ * value: boolean;
33
+ * };
34
+ * }
35
+ * ```
36
+ *
37
+ *
38
+ * @example
39
+ *
40
+ * <template>
41
+ * <Form :schema="formSchema" :on-submit="handleSubmit" id="test-form" name="data-request-form">
42
+ * <Button intent="primary" type="submit">Click me</Button>
43
+ * </Form>
44
+ * </template>
45
+ *
46
+ *
47
+ * <st>
48
+ * import { Button, Form, PdapInputTypes } from 'pdap-design-system';
49
+ *
50
+ * export default {
51
+ * components: ['Button', 'Form'],
52
+ * data() {
53
+ * return {
54
+ * formSchema: [
55
+ * {
56
+ * id: 'testfirstname',
57
+ * name: 'firstName',
58
+ * label: 'First Name',
59
+ * type: 'text',
60
+ * placeholder: 'John',
61
+ * value: '',
62
+ * validators: {
63
+ * minLength: {
64
+ * value: 3
65
+ * },
66
+ * required: {
67
+ * message: 'Please provide this information',
68
+ * value: true
69
+ * }
70
+ * },
71
+ * },
72
+ * {
73
+ * id: 'testlastname',
74
+ * name: 'lastName',
75
+ * label: 'Last Name',
76
+ * type: 'text',
77
+ * placeholder: 'Doe',
78
+ * value: '',
79
+ * validators: {
80
+ * minLength: {
81
+ * value: 3
82
+ * },
83
+ * maxLength: {
84
+ * message: 'A thousand characters for your surname? Are you a bot?',
85
+ * value: 999
86
+ * },
87
+ * },
88
+ * {
89
+ * id: 'ice-cream',
90
+ * name: 'iceCream',
91
+ * label: 'Do you like ice cream?',
92
+ * type: 'checkbox',
93
+ * defaultChecked: true,
94
+ * }
95
+ * ]
96
+ * }
97
+ * },
98
+ * methods: {
99
+ * handleSubmit: async function(data) {
100
+ * await doRequestStuff(data);
101
+ * this.$router.push('/')
102
+ * }
103
+ * }
104
+ *}
105
+ * </scriptt>
106
+ */
4
107
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapFormProps>, {
5
108
  error: null;
6
109
  }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -1,4 +1,15 @@
1
1
  import { PdapHeaderProps } from './types';
2
+ /**
3
+ * # `Header`
4
+ *
5
+ * ## Props
6
+ * @prop {string} logoImageSrc Src for the PDAP logo image to be displayed
7
+ * @prop {string } logoImageAnchorPath Path for the link that wraps the PDAP logo image
8
+ *
9
+ * ## Notes
10
+ * The `Header` component does not require any props to be passed. But keep in mind that it is responsible for rendering the `Nav` component. Consuming applications will need to `provide` an array of nav links -- **there are no defaults for this**, you must `provide` these links either 1\. in a layout component (see example below), at the route level, or at the app level. This allows for flexibility in which links are rendered on which routes
11
+ *
12
+ */
2
13
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PdapHeaderProps>, {
3
14
  logoImageSrc: string;
4
15
  logoImageAnchorPath: string;
@@ -1,4 +1,41 @@
1
1
  import { PdapNavProps } from './types';
2
+ /**
3
+ * # `Nav`
4
+ *
5
+ * ## Notes
6
+ * You do not need to render `Nav` directly. `Header` takes care of that. But you do need to `provide` nav link data from a parent component. This allows for nav links to be dynamic depending on where `Header` is rendered.
7
+ *
8
+ * @example
9
+ *
10
+ *<template>
11
+ * <Header />
12
+ * <router-view />
13
+ * <Footer />
14
+ *</template>
15
+ *
16
+ *
17
+ *<scriptt>
18
+ *import { Footer, Header } from 'pdap-design-system';
19
+ *import { RouterView } from 'vue-router';
20
+ *
21
+ *...
22
+ *
23
+ *export default {
24
+ * name: 'Layout',
25
+ * components: ['Footer', 'Header'],
26
+ * provide: {
27
+ * navLinks: [
28
+ * { path: '/', text: 'Home', method: 'path' },
29
+ * { path: '/a', text: 'a', method: 'path' },
30
+ * { path: '/b', text: 'b', method: 'path' },
31
+ * { path: '/c', text: 'c', method: 'path' },
32
+ * { href: 'https://www.google.com', text: 'Go to Google', method: 'href' },
33
+ * ]
34
+ * }
35
+ * ...
36
+ *}
37
+ *</scriptt>
38
+ */
2
39
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<PdapNavProps>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<PdapNavProps>>>, {}, {}>;
3
40
  export default _default;
4
41
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,3 +1,17 @@
1
+ /**
2
+ * # QuickSearchForm
3
+ * Renders a form to search the API `/search` endpoint with a search term and a location.
4
+ *
5
+ * ## Notes
6
+ *
7
+ * The different `mode` prop values result the following base url values in the eventual navigation
8
+ *
9
+ * | value | base url |
10
+ * | -------- | --------------------------------- |
11
+ * | `'dev'` | `'https://data-sources.pdap.dev'` |
12
+ * | `'prod'` | `'https://data-sources.pdap.io'` |
13
+ *
14
+ */
1
15
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
2
16
  baseUrlForRedirect: string;
3
17
  }>, {
@@ -1,4 +1,7 @@
1
1
  import { PdapTileIconProps } from './types';
2
+ /**
3
+ * @deprecated unused
4
+ */
2
5
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<PdapTileIconProps>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<PdapTileIconProps>>>, {}, {}>;
3
6
  export default _default;
4
7
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,12 +1,11 @@
1
1
  export { Button } from './Button';
2
- export { FlexContainer } from './FlexContainer';
2
+ export { ErrorBoundary } from './ErrorBoundary';
3
3
  export { Footer } from './Footer';
4
4
  export { Form } from './Form';
5
- export { GridContainer } from './GridContainer';
6
- export { GridItem } from './GridItem';
7
5
  export { Input } from './Input';
8
6
  export { Header } from './Header';
9
7
  export { Nav } from './Nav';
10
8
  export { QuickSearchForm } from './QuickSearchForm';
11
9
  export { TileIcon } from './TileIcon';
10
+ export { Dropdown } from './Dropdown';
12
11
  export { Breadcrumbs } from './Breadcrumbs';
@@ -0,0 +1,16 @@
1
+ import { DirectiveBinding } from 'vue';
2
+ type ElementWithClickOutside = Element & {
3
+ clickOutsideEvent: (event: Event) => void;
4
+ };
5
+ /**
6
+ * # Click outside directive
7
+ *
8
+ * Runs a callback on a click outside of the element to which the directive is applied
9
+ * @param el Element
10
+ * @param binding DirectiveBinding
11
+ */
12
+ declare const _default: {
13
+ beforeMount(el: Element, binding: DirectiveBinding): void;
14
+ unmounted(element: ElementWithClickOutside): void;
15
+ };
16
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default as vOnClickOutside } from './click-outside';