@pglevy/sailwind 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +219 -0
- package/dist/components/Button/ButtonArrayLayout.d.ts +37 -0
- package/dist/components/Button/ButtonArrayLayout.d.ts.map +1 -0
- package/dist/components/Button/ButtonArrayLayout.js +42 -0
- package/dist/components/Button/ButtonWidget.d.ts +75 -0
- package/dist/components/Button/ButtonWidget.d.ts.map +1 -0
- package/dist/components/Button/ButtonWidget.js +101 -0
- package/dist/components/Button/index.d.ts +5 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Card/CardLayout.d.ts +55 -0
- package/dist/components/Card/CardLayout.d.ts.map +1 -0
- package/dist/components/Card/CardLayout.js +139 -0
- package/dist/components/Card/index.d.ts +3 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Checkbox/CheckboxField.d.ts +65 -0
- package/dist/components/Checkbox/CheckboxField.d.ts.map +1 -0
- package/dist/components/Checkbox/CheckboxField.js +136 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Dialog/DialogField.d.ts +51 -0
- package/dist/components/Dialog/DialogField.d.ts.map +1 -0
- package/dist/components/Dialog/DialogField.js +113 -0
- package/dist/components/Dialog/index.d.ts +3 -0
- package/dist/components/Dialog/index.d.ts.map +1 -0
- package/dist/components/Dropdown/DropdownField.d.ts +87 -0
- package/dist/components/Dropdown/DropdownField.d.ts.map +1 -0
- package/dist/components/Dropdown/DropdownField.js +7 -0
- package/dist/components/Dropdown/DropdownFieldBase.d.ts +54 -0
- package/dist/components/Dropdown/DropdownFieldBase.d.ts.map +1 -0
- package/dist/components/Dropdown/DropdownFieldBase.js +183 -0
- package/dist/components/Dropdown/MultipleDropdownField.d.ts +85 -0
- package/dist/components/Dropdown/MultipleDropdownField.d.ts.map +1 -0
- package/dist/components/Dropdown/MultipleDropdownField.js +7 -0
- package/dist/components/Dropdown/index.d.ts +5 -0
- package/dist/components/Dropdown/index.d.ts.map +1 -0
- package/dist/components/Heading/HeadingField.d.ts +48 -0
- package/dist/components/Heading/HeadingField.d.ts.map +1 -0
- package/dist/components/Heading/HeadingField.js +103 -0
- package/dist/components/Heading/index.d.ts +3 -0
- package/dist/components/Heading/index.d.ts.map +1 -0
- package/dist/components/Image/DocumentImage.d.ts +20 -0
- package/dist/components/Image/DocumentImage.d.ts.map +1 -0
- package/dist/components/Image/ImageField.d.ts +42 -0
- package/dist/components/Image/ImageField.d.ts.map +1 -0
- package/dist/components/Image/ImageField.js +159 -0
- package/dist/components/Image/UserImage.d.ts +49 -0
- package/dist/components/Image/UserImage.d.ts.map +1 -0
- package/dist/components/Image/index.d.ts +5 -0
- package/dist/components/Image/index.d.ts.map +1 -0
- package/dist/components/MessageBanner/MessageBanner.d.ts +33 -0
- package/dist/components/MessageBanner/MessageBanner.d.ts.map +1 -0
- package/dist/components/MessageBanner/MessageBanner.js +97 -0
- package/dist/components/MessageBanner/index.d.ts +2 -0
- package/dist/components/MessageBanner/index.d.ts.map +1 -0
- package/dist/components/Milestone/MilestoneField.d.ts +50 -0
- package/dist/components/Milestone/MilestoneField.d.ts.map +1 -0
- package/dist/components/Milestone/MilestoneField.js +206 -0
- package/dist/components/Milestone/index.d.ts +3 -0
- package/dist/components/Milestone/index.d.ts.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +32 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.js +117 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/index.d.ts.map +1 -0
- package/dist/components/RadioButton/RadioButtonField.d.ts +63 -0
- package/dist/components/RadioButton/RadioButtonField.d.ts.map +1 -0
- package/dist/components/RadioButton/RadioButtonField.js +128 -0
- package/dist/components/RadioButton/index.d.ts +3 -0
- package/dist/components/RadioButton/index.d.ts.map +1 -0
- package/dist/components/RichText/Icon.d.ts +28 -0
- package/dist/components/RichText/Icon.d.ts.map +1 -0
- package/dist/components/RichText/Icon.js +94 -0
- package/dist/components/RichText/RichTextDisplayField.d.ts +36 -0
- package/dist/components/RichText/RichTextDisplayField.d.ts.map +1 -0
- package/dist/components/RichText/RichTextDisplayField.js +79 -0
- package/dist/components/RichText/TextItem.d.ts +27 -0
- package/dist/components/RichText/TextItem.d.ts.map +1 -0
- package/dist/components/RichText/TextItem.js +58 -0
- package/dist/components/RichText/index.d.ts +7 -0
- package/dist/components/RichText/index.d.ts.map +1 -0
- package/dist/components/Slider/SliderField.d.ts +63 -0
- package/dist/components/Slider/SliderField.d.ts.map +1 -0
- package/dist/components/Slider/SliderField.js +164 -0
- package/dist/components/Slider/index.d.ts +3 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/Stamp/StampField.d.ts +48 -0
- package/dist/components/Stamp/StampField.d.ts.map +1 -0
- package/dist/components/Stamp/StampField.js +173 -0
- package/dist/components/Stamp/index.d.ts +3 -0
- package/dist/components/Stamp/index.d.ts.map +1 -0
- package/dist/components/Switch/SwitchField.d.ts +49 -0
- package/dist/components/Switch/SwitchField.d.ts.map +1 -0
- package/dist/components/Switch/SwitchField.js +106 -0
- package/dist/components/Switch/index.d.ts +3 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/TableOfContents.d.ts +2 -0
- package/dist/components/TableOfContents.d.ts.map +1 -0
- package/dist/components/TableOfContents.js +142 -0
- package/dist/components/Tabs/TabsField.d.ts +50 -0
- package/dist/components/Tabs/TabsField.d.ts.map +1 -0
- package/dist/components/Tabs/TabsField.js +96 -0
- package/dist/components/Tabs/index.d.ts +3 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Tag/TagField.d.ts +52 -0
- package/dist/components/Tag/TagField.d.ts.map +1 -0
- package/dist/components/Tag/TagField.js +125 -0
- package/dist/components/Tag/TagItem.d.ts +26 -0
- package/dist/components/Tag/TagItem.d.ts.map +1 -0
- package/dist/components/Tag/TagItem.js +4 -0
- package/dist/components/Tag/index.d.ts +5 -0
- package/dist/components/Tag/index.d.ts.map +1 -0
- package/dist/components/TextField/TextField.d.ts +88 -0
- package/dist/components/TextField/TextField.d.ts.map +1 -0
- package/dist/components/TextField/TextField.js +113 -0
- package/dist/components/TextField/index.d.ts +3 -0
- package/dist/components/TextField/index.d.ts.map +1 -0
- package/dist/components/Toggle/ToggleField.d.ts +62 -0
- package/dist/components/Toggle/ToggleField.d.ts.map +1 -0
- package/dist/components/Toggle/ToggleField.js +126 -0
- package/dist/components/Toggle/index.d.ts +3 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +22 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/shared/CollapsibleSection.d.ts +9 -0
- package/dist/components/shared/CollapsibleSection.d.ts.map +1 -0
- package/dist/components/shared/CollapsibleSection.js +39 -0
- package/dist/components/shared/FieldLabel.d.ts +27 -0
- package/dist/components/shared/FieldLabel.d.ts.map +1 -0
- package/dist/components/shared/FieldLabel.js +40 -0
- package/dist/components/shared/FieldWrapper.d.ts +35 -0
- package/dist/components/shared/FieldWrapper.d.ts.map +1 -0
- package/dist/components/shared/FieldWrapper.js +71 -0
- package/dist/components/shared/index.d.ts +6 -0
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/esg_world_logo_no_year.png +0 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/types/sail.d.ts +37 -0
- package/dist/types/sail.d.ts.map +1 -0
- package/dist/uifaces-human-avatar.jpg +0 -0
- package/dist/utils/classNames.d.ts +21 -0
- package/dist/utils/classNames.d.ts.map +1 -0
- package/dist/utils/classNames.js +16 -0
- package/dist/vite.svg +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { jsxs as L, jsx as N } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import { mergeClasses as _ } from "../../utils/classNames.js";
|
|
4
|
+
const v = ({
|
|
5
|
+
children: l,
|
|
6
|
+
height: b = "AUTO",
|
|
7
|
+
style: e = "NONE",
|
|
8
|
+
shape: m = "SEMI_ROUNDED",
|
|
9
|
+
padding: c = "STANDARD",
|
|
10
|
+
marginAbove: A = "NONE",
|
|
11
|
+
marginBelow: d = "STANDARD",
|
|
12
|
+
showBorder: S = !0,
|
|
13
|
+
showShadow: i = !1,
|
|
14
|
+
borderColor: r = "STANDARD",
|
|
15
|
+
decorativeBarPosition: a = "NONE",
|
|
16
|
+
decorativeBarColor: s,
|
|
17
|
+
showWhen: u = !0,
|
|
18
|
+
className: R
|
|
19
|
+
}) => {
|
|
20
|
+
if (!u) return null;
|
|
21
|
+
const p = {
|
|
22
|
+
AUTO: "h-auto",
|
|
23
|
+
SHORT: "h-32",
|
|
24
|
+
MEDIUM: "h-48",
|
|
25
|
+
TALL: "h-64",
|
|
26
|
+
EXTRA_TALL: "h-96"
|
|
27
|
+
}, O = {
|
|
28
|
+
SQUARED: "rounded-none",
|
|
29
|
+
// SAIL SQUARED: 0
|
|
30
|
+
SEMI_ROUNDED: "rounded-sm",
|
|
31
|
+
// SAIL SEMI_ROUNDED: 4px
|
|
32
|
+
ROUNDED: "rounded-md"
|
|
33
|
+
// SAIL ROUNDED: 8px
|
|
34
|
+
}, C = {
|
|
35
|
+
NONE: "p-0",
|
|
36
|
+
// SAIL NONE: 0
|
|
37
|
+
EVEN_LESS: "p-1",
|
|
38
|
+
// SAIL EVEN_LESS: 4px
|
|
39
|
+
LESS: "p-2",
|
|
40
|
+
// SAIL LESS: 8px
|
|
41
|
+
STANDARD: "p-4",
|
|
42
|
+
// SAIL STANDARD: 16px
|
|
43
|
+
MORE: "p-6",
|
|
44
|
+
// SAIL MORE: 24px
|
|
45
|
+
EVEN_MORE: "p-8"
|
|
46
|
+
// SAIL EVEN_MORE: 32px
|
|
47
|
+
}, T = {
|
|
48
|
+
NONE: "mt-0",
|
|
49
|
+
// SAIL NONE: 0
|
|
50
|
+
EVEN_LESS: "mt-1",
|
|
51
|
+
// SAIL EVEN_LESS: 4px
|
|
52
|
+
LESS: "mt-2",
|
|
53
|
+
// SAIL LESS: 8px
|
|
54
|
+
STANDARD: "mt-4",
|
|
55
|
+
// SAIL STANDARD: 16px
|
|
56
|
+
MORE: "mt-6",
|
|
57
|
+
// SAIL MORE: 24px
|
|
58
|
+
EVEN_MORE: "mt-8"
|
|
59
|
+
// SAIL EVEN_MORE: 32px
|
|
60
|
+
}, D = {
|
|
61
|
+
NONE: "mb-0",
|
|
62
|
+
// SAIL NONE: 0
|
|
63
|
+
EVEN_LESS: "mb-1",
|
|
64
|
+
// SAIL EVEN_LESS: 4px
|
|
65
|
+
LESS: "mb-2",
|
|
66
|
+
// SAIL LESS: 8px
|
|
67
|
+
STANDARD: "mb-4",
|
|
68
|
+
// SAIL STANDARD: 16px
|
|
69
|
+
MORE: "mb-6",
|
|
70
|
+
// SAIL MORE: 24px
|
|
71
|
+
EVEN_MORE: "mb-8"
|
|
72
|
+
// SAIL EVEN_MORE: 32px
|
|
73
|
+
}, h = {
|
|
74
|
+
NONE: "bg-white",
|
|
75
|
+
TRANSPARENT: "bg-transparent",
|
|
76
|
+
STANDARD: "bg-white",
|
|
77
|
+
ACCENT: "bg-blue-50",
|
|
78
|
+
SUCCESS: "bg-green-50",
|
|
79
|
+
WARN: "bg-orange-50",
|
|
80
|
+
ERROR: "bg-red-50",
|
|
81
|
+
INFO: "bg-sky-50",
|
|
82
|
+
CHARCOAL_SCHEME: "bg-gray-900",
|
|
83
|
+
NAVY_SCHEME: "bg-blue-900",
|
|
84
|
+
PLUM_SCHEME: "bg-purple-900"
|
|
85
|
+
}, E = !e || e === "NONE" ? { className: "bg-white" } : typeof e == "string" && e.startsWith("#") ? { style: { backgroundColor: e } } : { className: h[e] || "bg-white" }, M = {
|
|
86
|
+
STANDARD: "border-gray-200",
|
|
87
|
+
ACCENT: "border-blue-500",
|
|
88
|
+
POSITIVE: "border-green-700",
|
|
89
|
+
WARN: "border-orange-500",
|
|
90
|
+
NEGATIVE: "border-red-700"
|
|
91
|
+
}, n = r ? r.startsWith("#") ? { style: { borderColor: r } } : { className: M[r] || "border-gray-200" } : { className: "border-gray-200" }, o = {
|
|
92
|
+
ACCENT: "bg-blue-500",
|
|
93
|
+
// Blue 3 (Aurora)
|
|
94
|
+
SUCCESS: "bg-green-500",
|
|
95
|
+
// Green 3 (Aurora)
|
|
96
|
+
WARN: "bg-orange-500",
|
|
97
|
+
// Orange 3 (Aurora)
|
|
98
|
+
ERROR: "bg-red-500",
|
|
99
|
+
// Red 3 (Aurora)
|
|
100
|
+
INFO: "bg-sky-500"
|
|
101
|
+
// Sky 3 (Aurora)
|
|
102
|
+
}, t = s ? s.startsWith("#") ? { style: { backgroundColor: s } } : { className: o[s] || o.ACCENT } : { className: o.ACCENT }, f = `
|
|
103
|
+
${E.className || ""}
|
|
104
|
+
${p[b]}
|
|
105
|
+
${O[m]}
|
|
106
|
+
${C[c]}
|
|
107
|
+
${T[A]}
|
|
108
|
+
${D[d]}
|
|
109
|
+
${S ? `border-2 ${n.className || ""}` : ""}
|
|
110
|
+
${i ? "shadow-md" : ""}
|
|
111
|
+
overflow-hidden
|
|
112
|
+
relative
|
|
113
|
+
`.replace(/\s+/g, " ").trim(), y = _(f, R), g = {
|
|
114
|
+
...E.style || {},
|
|
115
|
+
...n.style || {}
|
|
116
|
+
};
|
|
117
|
+
return /* @__PURE__ */ L("div", { className: y, style: Object.keys(g).length > 0 ? g : void 0, children: [
|
|
118
|
+
a === "TOP" && /* @__PURE__ */ N(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
className: `absolute top-0 left-0 right-0 h-1 ${t.className || ""}`,
|
|
122
|
+
style: t.style,
|
|
123
|
+
"aria-hidden": "true"
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
a === "START" && /* @__PURE__ */ N(
|
|
127
|
+
"div",
|
|
128
|
+
{
|
|
129
|
+
className: `absolute top-0 left-0 bottom-0 w-1 ${t.className || ""}`,
|
|
130
|
+
style: t.style,
|
|
131
|
+
"aria-hidden": "true"
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
/* @__PURE__ */ N("div", { className: a === "TOP" ? "pt-1" : "", children: l })
|
|
135
|
+
] });
|
|
136
|
+
};
|
|
137
|
+
export {
|
|
138
|
+
v as CardLayout
|
|
139
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { SAILLabelPosition, SAILMarginSize, SAILAlign } from '../../types/sail';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
type ChoiceLayout = "STACKED" | "COMPACT";
|
|
4
|
+
type ChoiceStyle = "STANDARD" | "CARDS";
|
|
5
|
+
type Spacing = "STANDARD" | "MORE" | "EVEN_MORE";
|
|
6
|
+
type ChoicePosition = "START" | "END";
|
|
7
|
+
/**
|
|
8
|
+
* Displays a set of checkboxes for multi-select input
|
|
9
|
+
* Maps to SAIL a!checkboxField()
|
|
10
|
+
*/
|
|
11
|
+
export interface CheckboxFieldProps {
|
|
12
|
+
/** Text to display as the field label */
|
|
13
|
+
label?: string;
|
|
14
|
+
/** Supplemental text about this field */
|
|
15
|
+
instructions?: string;
|
|
16
|
+
/** Determines if a value is required to submit the form */
|
|
17
|
+
required?: boolean;
|
|
18
|
+
/** Determines if the field should display as grayed out */
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
/** Array of options for the user to select */
|
|
21
|
+
choiceLabels: any[];
|
|
22
|
+
/** Array of values associated with the corresponding choices */
|
|
23
|
+
choiceValues: any[];
|
|
24
|
+
/** Values of choices to display as selected */
|
|
25
|
+
value?: any[];
|
|
26
|
+
/** Validation errors to display below the field */
|
|
27
|
+
validations?: string[];
|
|
28
|
+
/** Callback when the user changes the selections */
|
|
29
|
+
saveInto?: (value: any[]) => void;
|
|
30
|
+
/** Callback when the user changes the selections (React-style alias for saveInto) */
|
|
31
|
+
onChange?: (value: any[]) => void;
|
|
32
|
+
/** Validation group name (no spaces) */
|
|
33
|
+
validationGroup?: string;
|
|
34
|
+
/** Custom message when field is required and not provided */
|
|
35
|
+
requiredMessage?: string;
|
|
36
|
+
/** Determines alignment of choice labels. Use with Grid Layout */
|
|
37
|
+
align?: SAILAlign | "LEFT" | "CENTER" | "RIGHT";
|
|
38
|
+
/** Determines where the label appears */
|
|
39
|
+
labelPosition?: SAILLabelPosition;
|
|
40
|
+
/** Displays a help icon with tooltip text */
|
|
41
|
+
helpTooltip?: string;
|
|
42
|
+
/** Determines the layout of choices */
|
|
43
|
+
choiceLayout?: ChoiceLayout;
|
|
44
|
+
/** Additional text for screen readers */
|
|
45
|
+
accessibilityText?: string;
|
|
46
|
+
/** Determines whether component is displayed */
|
|
47
|
+
showWhen?: boolean;
|
|
48
|
+
/** Determines how choices are displayed */
|
|
49
|
+
choiceStyle?: ChoiceStyle;
|
|
50
|
+
/** Determines space between options */
|
|
51
|
+
spacing?: Spacing;
|
|
52
|
+
/** Data source (record type) - not implemented in prototype */
|
|
53
|
+
data?: any;
|
|
54
|
+
/** Sort configurations - not implemented in prototype */
|
|
55
|
+
sort?: any[];
|
|
56
|
+
/** Space added above component */
|
|
57
|
+
marginAbove?: SAILMarginSize;
|
|
58
|
+
/** Space added below component */
|
|
59
|
+
marginBelow?: SAILMarginSize;
|
|
60
|
+
/** Determines whether checkboxes appear on left or right */
|
|
61
|
+
choicePosition?: ChoicePosition;
|
|
62
|
+
}
|
|
63
|
+
export declare const CheckboxField: React.FC<CheckboxFieldProps>;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=CheckboxField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxField.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/CheckboxField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpF,KAAK,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;AACzC,KAAK,WAAW,GAAG,UAAU,GAAG,OAAO,CAAA;AACvC,KAAK,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAA;AAChD,KAAK,cAAc,GAAG,OAAO,GAAG,KAAK,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,gEAAgE;IAChE,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACjC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACjC,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC/C,yCAAyC;IACzC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,yDAAyD;IACzD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoLtD,CAAA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { jsx as r, jsxs as N, Fragment as y } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import { FieldWrapper as P } from "../shared/FieldWrapper.js";
|
|
4
|
+
const Y = ({
|
|
5
|
+
label: C,
|
|
6
|
+
instructions: g,
|
|
7
|
+
required: m = !1,
|
|
8
|
+
disabled: a = !1,
|
|
9
|
+
choiceLabels: x,
|
|
10
|
+
choiceValues: R,
|
|
11
|
+
value: i = [],
|
|
12
|
+
validations: u = [],
|
|
13
|
+
saveInto: b,
|
|
14
|
+
onChange: T,
|
|
15
|
+
validationGroup: H,
|
|
16
|
+
requiredMessage: A,
|
|
17
|
+
align: D,
|
|
18
|
+
labelPosition: S = "ABOVE",
|
|
19
|
+
helpTooltip: j,
|
|
20
|
+
choiceLayout: c = "STACKED",
|
|
21
|
+
accessibilityText: k,
|
|
22
|
+
showWhen: w = !0,
|
|
23
|
+
choiceStyle: t = "STANDARD",
|
|
24
|
+
spacing: h = "STANDARD",
|
|
25
|
+
data: U,
|
|
26
|
+
sort: W,
|
|
27
|
+
marginAbove: v = "NONE",
|
|
28
|
+
marginBelow: M = "STANDARD",
|
|
29
|
+
choicePosition: O
|
|
30
|
+
}) => {
|
|
31
|
+
if (!w) return null;
|
|
32
|
+
const s = `checkboxfield-${Math.random().toString(36).substr(2, 9)}`, $ = O ?? (t === "CARDS" ? "END" : "START"), B = {
|
|
33
|
+
STANDARD: c === "STACKED" ? "gap-2" : "gap-4",
|
|
34
|
+
MORE: c === "STACKED" ? "gap-4" : "gap-6",
|
|
35
|
+
EVEN_MORE: c === "STACKED" ? "gap-6" : "gap-8"
|
|
36
|
+
}, F = {
|
|
37
|
+
STANDARD: "gap-2",
|
|
38
|
+
MORE: "gap-4",
|
|
39
|
+
EVEN_MORE: "gap-6"
|
|
40
|
+
}, K = {
|
|
41
|
+
LEFT: "justify-start",
|
|
42
|
+
START: "justify-start",
|
|
43
|
+
CENTER: "justify-center",
|
|
44
|
+
RIGHT: "justify-end",
|
|
45
|
+
END: "justify-end"
|
|
46
|
+
}, E = (o, e) => {
|
|
47
|
+
const n = T || b;
|
|
48
|
+
if (!n) return;
|
|
49
|
+
const l = e ? [...i, o] : i.filter((d) => d !== o);
|
|
50
|
+
n(l);
|
|
51
|
+
}, p = u.length > 0, V = m && !i.length && A, _ = /* @__PURE__ */ r(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
className: [
|
|
55
|
+
c === "STACKED" ? "flex flex-col" : "flex flex-wrap",
|
|
56
|
+
B[h],
|
|
57
|
+
D && K[D]
|
|
58
|
+
].filter(Boolean).join(" "),
|
|
59
|
+
role: "group",
|
|
60
|
+
"aria-describedby": g ? `${s}-instructions` : void 0,
|
|
61
|
+
children: x.map((o, e) => {
|
|
62
|
+
const n = R[e], l = i.includes(n), d = `${s}-choice-${e}`, I = [
|
|
63
|
+
"flex",
|
|
64
|
+
"items-center",
|
|
65
|
+
F[h],
|
|
66
|
+
$ === "END" && "flex-row-reverse",
|
|
67
|
+
t === "CARDS" && "border border-gray-200 rounded-sm p-4 hover:border-blue-500 transition-colors cursor-pointer",
|
|
68
|
+
t === "CARDS" && l && "border-blue-500 bg-blue-50",
|
|
69
|
+
a && "opacity-50 cursor-not-allowed"
|
|
70
|
+
].filter(Boolean).join(" ");
|
|
71
|
+
return /* @__PURE__ */ N(
|
|
72
|
+
"div",
|
|
73
|
+
{
|
|
74
|
+
className: I,
|
|
75
|
+
onClick: (f) => {
|
|
76
|
+
t === "CARDS" && !a && f.target.tagName !== "INPUT" && E(n, !l);
|
|
77
|
+
},
|
|
78
|
+
children: [
|
|
79
|
+
/* @__PURE__ */ r(
|
|
80
|
+
"input",
|
|
81
|
+
{
|
|
82
|
+
id: d,
|
|
83
|
+
type: "checkbox",
|
|
84
|
+
checked: l,
|
|
85
|
+
disabled: a,
|
|
86
|
+
onChange: (f) => E(n, f.target.checked),
|
|
87
|
+
className: [
|
|
88
|
+
"h-4 w-4 rounded border-gray-200 text-blue-500 focus:ring-blue-500",
|
|
89
|
+
a ? "cursor-not-allowed" : "cursor-pointer"
|
|
90
|
+
].filter(Boolean).join(" "),
|
|
91
|
+
"aria-invalid": p,
|
|
92
|
+
"aria-errormessage": p ? `${s}-error` : void 0
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
|
+
/* @__PURE__ */ r(
|
|
96
|
+
"label",
|
|
97
|
+
{
|
|
98
|
+
htmlFor: t === "CARDS" ? void 0 : d,
|
|
99
|
+
className: [
|
|
100
|
+
"text-base text-gray-900",
|
|
101
|
+
t === "CARDS" && "flex-1",
|
|
102
|
+
a ? "cursor-not-allowed" : "cursor-pointer"
|
|
103
|
+
].filter(Boolean).join(" "),
|
|
104
|
+
children: o
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
e
|
|
110
|
+
);
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
), G = /* @__PURE__ */ N(y, { children: [
|
|
114
|
+
p && /* @__PURE__ */ r("div", { id: `${s}-error`, className: "mt-2", role: "alert", children: u.map((o, e) => /* @__PURE__ */ r("p", { className: "text-sm text-red-700", children: o }, e)) }),
|
|
115
|
+
V && /* @__PURE__ */ r("p", { className: "text-sm text-red-700 mt-2", role: "alert", children: A })
|
|
116
|
+
] });
|
|
117
|
+
return /* @__PURE__ */ r(
|
|
118
|
+
P,
|
|
119
|
+
{
|
|
120
|
+
label: C,
|
|
121
|
+
labelPosition: S,
|
|
122
|
+
required: m,
|
|
123
|
+
instructions: g,
|
|
124
|
+
helpTooltip: j,
|
|
125
|
+
accessibilityText: k,
|
|
126
|
+
inputId: s,
|
|
127
|
+
marginAbove: v,
|
|
128
|
+
marginBelow: M,
|
|
129
|
+
footer: G,
|
|
130
|
+
children: _
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
export {
|
|
135
|
+
Y as CheckboxField
|
|
136
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { SAILMarginSize } from '../../types/sail';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Width options for dialog sizing
|
|
5
|
+
*/
|
|
6
|
+
export type DialogWidth = "NARROW" | "MEDIUM" | "MEDIUM_PLUS" | "WIDE" | "FIT";
|
|
7
|
+
/**
|
|
8
|
+
* Height options for dialog sizing
|
|
9
|
+
*/
|
|
10
|
+
export type DialogHeight = "AUTO" | "FIT" | "SHORT" | "MEDIUM" | "TALL" | "EXTRA_TALL";
|
|
11
|
+
/**
|
|
12
|
+
* Displays a modal dialog overlay with customizable content
|
|
13
|
+
* Inspired by SAIL form field patterns (not an official SAIL component)
|
|
14
|
+
*
|
|
15
|
+
* This is a "new SAIL" component - not available in public SAIL but follows
|
|
16
|
+
* the same conventions and patterns for consistency with other Sailwind components.
|
|
17
|
+
*/
|
|
18
|
+
export interface DialogFieldProps {
|
|
19
|
+
/** Whether the dialog is open */
|
|
20
|
+
open?: boolean;
|
|
21
|
+
/** Callback when dialog open state changes */
|
|
22
|
+
onOpenChange?: (open: boolean) => void;
|
|
23
|
+
/** Element that triggers the dialog (usually a button) */
|
|
24
|
+
trigger?: React.ReactNode;
|
|
25
|
+
/** Dialog title text */
|
|
26
|
+
title?: string;
|
|
27
|
+
/** Dialog description text */
|
|
28
|
+
description?: string;
|
|
29
|
+
/** Main content of the dialog */
|
|
30
|
+
children: React.ReactNode;
|
|
31
|
+
/** Width of the dialog */
|
|
32
|
+
width?: DialogWidth;
|
|
33
|
+
/** Height of the dialog */
|
|
34
|
+
height?: DialogHeight;
|
|
35
|
+
/** Whether to show the close button */
|
|
36
|
+
showCloseButton?: boolean;
|
|
37
|
+
/** Whether clicking outside closes the dialog */
|
|
38
|
+
closeOnOutsideClick?: boolean;
|
|
39
|
+
/** Whether pressing escape closes the dialog */
|
|
40
|
+
closeOnEscape?: boolean;
|
|
41
|
+
/** Determines whether component is displayed */
|
|
42
|
+
showWhen?: boolean;
|
|
43
|
+
/** Space added above component */
|
|
44
|
+
marginAbove?: SAILMarginSize;
|
|
45
|
+
/** Space added below component */
|
|
46
|
+
marginBelow?: SAILMarginSize;
|
|
47
|
+
/** Callback when dialog is closed */
|
|
48
|
+
onClose?: () => void;
|
|
49
|
+
}
|
|
50
|
+
export declare const DialogField: React.FC<DialogFieldProps>;
|
|
51
|
+
//# sourceMappingURL=DialogField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogField.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/DialogField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0JlD,CAAA"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsx as e, jsxs as o } from "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import * as t from "@radix-ui/react-dialog";
|
|
4
|
+
import { X as T } from "lucide-react";
|
|
5
|
+
const y = ({
|
|
6
|
+
open: i,
|
|
7
|
+
onOpenChange: d,
|
|
8
|
+
trigger: r,
|
|
9
|
+
title: s,
|
|
10
|
+
description: n,
|
|
11
|
+
children: p,
|
|
12
|
+
width: E = "MEDIUM",
|
|
13
|
+
height: l = "AUTO",
|
|
14
|
+
showCloseButton: m = !0,
|
|
15
|
+
closeOnOutsideClick: N = !0,
|
|
16
|
+
closeOnEscape: x = !0,
|
|
17
|
+
showWhen: g = !0,
|
|
18
|
+
marginAbove: v = "NONE",
|
|
19
|
+
marginBelow: w = "STANDARD",
|
|
20
|
+
onClose: c
|
|
21
|
+
}) => {
|
|
22
|
+
if (!g) return null;
|
|
23
|
+
const b = {
|
|
24
|
+
NONE: "",
|
|
25
|
+
EVEN_LESS: "mt-1",
|
|
26
|
+
LESS: "mt-2",
|
|
27
|
+
STANDARD: "mt-4",
|
|
28
|
+
MORE: "mt-6",
|
|
29
|
+
EVEN_MORE: "mt-8"
|
|
30
|
+
}, D = {
|
|
31
|
+
NONE: "",
|
|
32
|
+
EVEN_LESS: "mb-1",
|
|
33
|
+
LESS: "mb-2",
|
|
34
|
+
STANDARD: "mb-4",
|
|
35
|
+
MORE: "mb-6",
|
|
36
|
+
EVEN_MORE: "mb-8"
|
|
37
|
+
}, M = {
|
|
38
|
+
NARROW: "w-[90vw] max-w-sm",
|
|
39
|
+
// ~384px max
|
|
40
|
+
MEDIUM: "w-[90vw] max-w-md",
|
|
41
|
+
// ~448px max
|
|
42
|
+
MEDIUM_PLUS: "w-[90vw] max-w-lg",
|
|
43
|
+
// ~512px max
|
|
44
|
+
WIDE: "w-[90vw] max-w-2xl",
|
|
45
|
+
// ~672px max
|
|
46
|
+
FIT: "w-[95vw]"
|
|
47
|
+
// Full screen width (with small margin)
|
|
48
|
+
}, O = {
|
|
49
|
+
AUTO: "h-auto",
|
|
50
|
+
// Content-based height
|
|
51
|
+
FIT: "h-auto max-h-[85vh]",
|
|
52
|
+
// Content-based with max
|
|
53
|
+
SHORT: "h-[300px]",
|
|
54
|
+
// Fixed short height
|
|
55
|
+
MEDIUM: "h-[500px]",
|
|
56
|
+
// Fixed medium height
|
|
57
|
+
TALL: "h-[700px]",
|
|
58
|
+
// Fixed tall height
|
|
59
|
+
EXTRA_TALL: "h-[85vh]"
|
|
60
|
+
// Very tall, viewport-based
|
|
61
|
+
}, u = [
|
|
62
|
+
b[v],
|
|
63
|
+
D[w]
|
|
64
|
+
].filter(Boolean).join(" "), f = (a) => {
|
|
65
|
+
d && d(a), !a && c && c();
|
|
66
|
+
}, h = /* @__PURE__ */ o(t.Portal, { children: [
|
|
67
|
+
/* @__PURE__ */ e(t.Overlay, { className: "fixed inset-0 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }),
|
|
68
|
+
/* @__PURE__ */ o(
|
|
69
|
+
t.Content,
|
|
70
|
+
{
|
|
71
|
+
className: [
|
|
72
|
+
"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
|
|
73
|
+
"bg-white rounded-md shadow-lg border border-gray-200",
|
|
74
|
+
"p-6",
|
|
75
|
+
M[E],
|
|
76
|
+
O[l],
|
|
77
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
78
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
79
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
80
|
+
"data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]",
|
|
81
|
+
"data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
82
|
+
"focus:outline-none"
|
|
83
|
+
].filter(Boolean).join(" "),
|
|
84
|
+
onPointerDownOutside: N ? void 0 : (a) => a.preventDefault(),
|
|
85
|
+
onEscapeKeyDown: x ? void 0 : (a) => a.preventDefault(),
|
|
86
|
+
children: [
|
|
87
|
+
(s || n || m) && /* @__PURE__ */ e("div", { className: "mb-4", children: /* @__PURE__ */ o("div", { className: "flex items-start justify-between", children: [
|
|
88
|
+
/* @__PURE__ */ o("div", { className: "flex-1", children: [
|
|
89
|
+
s && /* @__PURE__ */ e(t.Title, { className: "text-lg font-semibold text-gray-900 mb-2", children: s }),
|
|
90
|
+
n && /* @__PURE__ */ e(t.Description, { className: "text-sm text-gray-700", children: n })
|
|
91
|
+
] }),
|
|
92
|
+
m && /* @__PURE__ */ e(t.Close, { asChild: !0, children: /* @__PURE__ */ e(
|
|
93
|
+
"button",
|
|
94
|
+
{
|
|
95
|
+
className: "ml-4 p-1 rounded-sm text-gray-500 hover:text-gray-700 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500",
|
|
96
|
+
"aria-label": "Close dialog",
|
|
97
|
+
children: /* @__PURE__ */ e(T, { className: "h-4 w-4" })
|
|
98
|
+
}
|
|
99
|
+
) })
|
|
100
|
+
] }) }),
|
|
101
|
+
/* @__PURE__ */ e("div", { className: l !== "AUTO" && l !== "FIT" ? "overflow-y-auto" : "", children: p })
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] });
|
|
106
|
+
return r ? /* @__PURE__ */ e("div", { className: u, children: /* @__PURE__ */ o(t.Root, { open: i, onOpenChange: f, children: [
|
|
107
|
+
/* @__PURE__ */ e(t.Trigger, { asChild: !0, children: r }),
|
|
108
|
+
h
|
|
109
|
+
] }) }) : /* @__PURE__ */ e("div", { className: u, children: /* @__PURE__ */ e(t.Root, { open: i, onOpenChange: f, children: h }) });
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
y as DialogField
|
|
113
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { SAILLabelPosition, SAILMarginSize } from '../../types/sail';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
type SearchDisplay = "AUTO" | "ON" | "OFF";
|
|
4
|
+
/**
|
|
5
|
+
* Displays a list of choices for the user to select one item
|
|
6
|
+
* Maps to SAIL a!dropdownField()
|
|
7
|
+
*/
|
|
8
|
+
export interface DropdownFieldProps {
|
|
9
|
+
/** Text to display as the field label */
|
|
10
|
+
label?: string;
|
|
11
|
+
/** Determines where the label appears */
|
|
12
|
+
labelPosition?: SAILLabelPosition;
|
|
13
|
+
/** Supplemental text about this field */
|
|
14
|
+
instructions?: string;
|
|
15
|
+
/** Determines if a value is required to submit the form */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** Determines if the field should display as grayed out */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Array of options for the user to select */
|
|
20
|
+
choiceLabels: any[];
|
|
21
|
+
/** Array of values associated with the corresponding choices */
|
|
22
|
+
choiceValues: any[];
|
|
23
|
+
/** Text to display when nothing is selected and value is null */
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
/** Value of the choice to display as selected */
|
|
26
|
+
value?: any;
|
|
27
|
+
/** Validation errors to display below the field */
|
|
28
|
+
validations?: string[];
|
|
29
|
+
/** Callback when the user changes the selection */
|
|
30
|
+
saveInto?: (value: any) => void;
|
|
31
|
+
/** Callback when the user changes the selection (React-style alias for saveInto) */
|
|
32
|
+
onChange?: (value: any) => void;
|
|
33
|
+
/** Validation group name (no spaces) */
|
|
34
|
+
validationGroup?: string;
|
|
35
|
+
/** Custom message when field is required and not provided */
|
|
36
|
+
requiredMessage?: string;
|
|
37
|
+
/** Displays a help icon with tooltip text */
|
|
38
|
+
helpTooltip?: string;
|
|
39
|
+
/** Additional text for screen readers */
|
|
40
|
+
accessibilityText?: string;
|
|
41
|
+
/** Determines whether component is displayed */
|
|
42
|
+
showWhen?: boolean;
|
|
43
|
+
/** Determines when a search box displays above options */
|
|
44
|
+
searchDisplay?: SearchDisplay;
|
|
45
|
+
/** Data source (record type) - not implemented in prototype */
|
|
46
|
+
data?: any;
|
|
47
|
+
/** Sort configurations - not implemented in prototype */
|
|
48
|
+
sort?: any[];
|
|
49
|
+
/** Space added above component */
|
|
50
|
+
marginAbove?: SAILMarginSize;
|
|
51
|
+
/** Space added below component */
|
|
52
|
+
marginBelow?: SAILMarginSize;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Single-select dropdown field component
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* <DropdownField
|
|
60
|
+
* label="Language"
|
|
61
|
+
* instructions="In which language are you most proficient?"
|
|
62
|
+
* choiceLabels={["English", "Spanish", "French", "German"]}
|
|
63
|
+
* choiceValues={["en_US", "es_ES", "fr_FR", "de_DE"]}
|
|
64
|
+
* value={selectedLanguage}
|
|
65
|
+
* saveInto={(value) => setSelectedLanguage(value)}
|
|
66
|
+
* placeholder="Select a language"
|
|
67
|
+
* searchDisplay="AUTO"
|
|
68
|
+
* />
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* SAIL Translation:
|
|
72
|
+
* ```sail
|
|
73
|
+
* a!dropdownField(
|
|
74
|
+
* label: "Language",
|
|
75
|
+
* instructions: "In which language are you most proficient?",
|
|
76
|
+
* choiceLabels: {"English", "Spanish", "French", "German"},
|
|
77
|
+
* choiceValues: {"en_US", "es_ES", "fr_FR", "de_DE"},
|
|
78
|
+
* value: local!language,
|
|
79
|
+
* saveInto: local!language,
|
|
80
|
+
* placeholder: "Select a language",
|
|
81
|
+
* searchDisplay: "AUTO"
|
|
82
|
+
* )
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare const DropdownField: React.FC<DropdownFieldProps>;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=DropdownField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownField.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/DropdownField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEzE,KAAK,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;AAE1C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yCAAyC;IACzC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,gEAAgE;IAChE,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,yDAAyD;IACzD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,kCAAkC;IAClC,WAAW,CAAC,EAAE,cAAc,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAEtD,CAAA"}
|