playbook_ui_docs 14.9.0.pre.alpha.PLAY1731inputmasking4927 → 14.9.0.pre.alpha.PLAY16264952

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 429463d427a254b6dc9bfe74aff56eab718a52a9ea0150d6c2d1c8bcde07baeb
4
- data.tar.gz: 55ff3ef143257e27d1e62556311070d703952b882e4e7a767e75c8d0ba6954fd
3
+ metadata.gz: b467fbcae42be9e319abfbe8598c7faac4e81b90c8b0e9e917f2e10cc80e88a3
4
+ data.tar.gz: 509c4072db236dfab4715bcab6a0b781b01bd72521366a0f57389fa847d9df32
5
5
  SHA512:
6
- metadata.gz: bfb8b564ec67a749274314a65c11744daa3fd5aa81e93c71ab48892ef128cf82c7489a7fdd17867fdd00eab7b136d165c66414197521373fe903364c0e4e1dbd
7
- data.tar.gz: d3d177c3460a274a4d43f773e63aff51fb22f65331a8a06ee8f329c365c924d3788b28143ebe11df88487e9a8f88c6aac8d97f409f7d8f237c8fae6a6146cc58
6
+ metadata.gz: b0b6b3151f01ea063e24f2bad4c8358fcdb9e9f7b2339bed8dc8767c15bfdccbe37c8fd5607e2dc64aa7fadfa8d5438e598efb0b582e2b84525521a13c04edc8
7
+ data.tar.gz: a1798e5a109c940e7133ac624b9a22bf3a93267d4fead3b7647ab9849c3b97327d510c4f1664b1b31683e288ada514679bb506c1dfff047854d0bb8ee360094a
@@ -0,0 +1,138 @@
1
+ import React from "react"
2
+ import { useForm } from "react-hook-form"
3
+ import { Checkbox, Card, Body, Button } from "playbook-ui"
4
+
5
+ const CheckboxForm = () => {
6
+ const {
7
+ register,
8
+ handleSubmit,
9
+ formState: { errors },
10
+ watch,
11
+ } = useForm({
12
+ defaultValues: {
13
+ termsAccepted: false,
14
+ newsletter: false,
15
+ interests: [],
16
+ preferences: {
17
+ emailUpdates: false,
18
+ smsUpdates: false,
19
+ pushNotifications: false,
20
+ },
21
+ },
22
+ })
23
+
24
+ const onSubmit = (data) => {
25
+ console.log("Form submitted:", data)
26
+ }
27
+
28
+ const formValues = watch()
29
+
30
+ return (
31
+ <div>
32
+ <Card padding='md'>
33
+ <form onSubmit={handleSubmit(onSubmit)}>
34
+ <div>
35
+ <Body marginBottom='xs'
36
+ text='Terms and Conditions'
37
+ />
38
+ <Checkbox
39
+ error={errors.termsAccepted?.message}
40
+ name='termsAccepted'
41
+ register={register}
42
+ rules={{
43
+ required: "You must accept the terms and conditions",
44
+ }}
45
+ text='I accept the terms and conditions'
46
+ />
47
+ </div>
48
+ <div className='mt-4'>
49
+ <Body marginBottom='xs'
50
+ text='Newsletter Subscription'
51
+ />
52
+ <Checkbox
53
+ name='newsletter'
54
+ register={register}
55
+ text='Subscribe to our newsletter'
56
+ />
57
+ </div>
58
+ <div className='mt-4'>
59
+ <Body marginBottom='xs'
60
+ text='Your Interests'
61
+ />
62
+ <Checkbox
63
+ error={errors.interests?.message}
64
+ name='interests'
65
+ register={register}
66
+ rules={{
67
+ validate: (value) => {
68
+ const selectedInterests = Object.values(value).filter(Boolean)
69
+ return (
70
+ selectedInterests.length >= 1 ||
71
+ "Please select at least one interest"
72
+ )
73
+ },
74
+ }}
75
+ text='Technology'
76
+ value='technology'
77
+ />
78
+ <Checkbox
79
+ name='interests'
80
+ register={register}
81
+ text='Design'
82
+ value='design'
83
+ />
84
+ <Checkbox
85
+ name='interests'
86
+ register={register}
87
+ text='Business'
88
+ value='business'
89
+ />
90
+ <Checkbox
91
+ name='interests'
92
+ register={register}
93
+ text='Marketing'
94
+ value='marketing'
95
+ />
96
+ </div>
97
+ <div className='mt-4'>
98
+ <Body marginBottom='xs'
99
+ text='Communication Preferences'
100
+ />
101
+ <Checkbox
102
+ name='preferences.emailUpdates'
103
+ register={register}
104
+ text='Email Updates'
105
+ />
106
+ <Checkbox
107
+ name='preferences.smsUpdates'
108
+ register={register}
109
+ text='SMS Updates'
110
+ />
111
+ <Checkbox
112
+ name='preferences.pushNotifications'
113
+ register={register}
114
+ text='Push Notifications'
115
+ />
116
+ </div>
117
+ <Button
118
+ htmlType="submit"
119
+ marginTop='lg'
120
+ text='Submit'
121
+ type='submit'
122
+ variant='primary'
123
+ />
124
+ </form>
125
+ <Card marginTop='lg'>
126
+ <Body text='Current Form Values:'
127
+ variant='bold'
128
+ />
129
+ <pre style={{ marginTop: "8px", color: "white" }}>
130
+ {JSON.stringify(formValues, null, 2)}
131
+ </pre>
132
+ </Card>
133
+ </Card>
134
+ </div>
135
+ )
136
+ }
137
+
138
+ export default CheckboxForm
@@ -9,12 +9,13 @@ examples:
9
9
  - checkbox_disabled: Disabled Checkbox
10
10
 
11
11
  react:
12
- - checkbox_default: Default
13
- - checkbox_checked: Load as checked
14
- - checkbox_custom: Custom Checkbox
15
- - checkbox_error: Default w/ Error
16
- - checkbox_indeterminate: Indeterminate Checkbox
17
- - checkbox_disabled: Disabled Checkbox
12
+ - checkbox_default: Default
13
+ - checkbox_checked: Load as checked
14
+ - checkbox_custom: Custom Checkbox
15
+ - checkbox_error: Default w/ Error
16
+ - checkbox_indeterminate: Indeterminate Checkbox
17
+ - checkbox_disabled: Disabled Checkbox
18
+ - checkbox_form: Checkbox Form
18
19
 
19
20
  swift:
20
21
  - checkbox_default_swift: Default
@@ -4,3 +4,4 @@ export { default as CheckboxError } from './_checkbox_error.jsx'
4
4
  export { default as CheckboxChecked } from './_checkbox_checked.jsx'
5
5
  export { default as CheckboxIndeterminate } from './_checkbox_indeterminate.jsx'
6
6
  export { default as CheckboxDisabled } from './_checkbox_disabled.jsx'
7
+ export { default as CheckboxForm } from './_checkbox_form.jsx'
@@ -0,0 +1,109 @@
1
+ import React from 'react'
2
+ import { useForm } from 'react-hook-form'
3
+ import { Select, Card, Body, Button } from 'playbook-ui'
4
+
5
+ const SelectForm = (props) => {
6
+ const {
7
+ register,
8
+ handleSubmit,
9
+ formState: { errors },
10
+ watch,
11
+ } = useForm({
12
+ defaultValues: {
13
+ favoriteFood: '',
14
+ mealType: '',
15
+ dietaryRestrictions: '',
16
+ }
17
+ })
18
+
19
+ const onSubmit = (data) => {
20
+ console.log('Form submitted:', data)
21
+ }
22
+
23
+ // Watch form values for real-time display
24
+ const formValues = watch()
25
+
26
+ const foodOptions = [
27
+ { value: 'pizza', text: 'Pizza' },
28
+ { value: 'burger', text: 'Burger' },
29
+ { value: 'sushi', text: 'Sushi' },
30
+ { value: 'salad', text: 'Salad' },
31
+ ]
32
+
33
+ const mealTypes = [
34
+ { value: 'breakfast', text: 'Breakfast' },
35
+ { value: 'lunch', text: 'Lunch' },
36
+ { value: 'dinner', text: 'Dinner' },
37
+ ]
38
+
39
+ const dietaryOptions = [
40
+ { value: 'none', text: 'No Restrictions' },
41
+ { value: 'vegetarian', text: 'Vegetarian' },
42
+ { value: 'vegan', text: 'Vegan' },
43
+ { value: 'glutenFree', text: 'Gluten Free' },
44
+ ]
45
+
46
+ return (
47
+ <div>
48
+ <Card>
49
+ <form onSubmit={handleSubmit(onSubmit)}>
50
+ <Select
51
+ error={errors.favoriteFood?.message}
52
+ label="What's your favorite food?"
53
+ name="favoriteFood"
54
+ options={foodOptions}
55
+ register={register}
56
+ rules={{
57
+ required: 'Please select your favorite food',
58
+ }}
59
+ {...props}
60
+ />
61
+ <Select
62
+ blankSelection="Choose a meal type..."
63
+ error={errors.mealType?.message}
64
+ label="Preferred meal time"
65
+ marginTop="md"
66
+ name="mealType"
67
+ options={mealTypes}
68
+ register={register}
69
+ rules={{
70
+ required: 'Please select a meal type',
71
+ }}
72
+ {...props}
73
+ />
74
+ <Select
75
+ label="Dietary Restrictions"
76
+ marginTop="md"
77
+ name="dietaryRestrictions"
78
+ options={dietaryOptions}
79
+ register={register}
80
+ {...props}
81
+ />
82
+
83
+ <Button
84
+ htmlType="submit"
85
+ marginTop="lg"
86
+ text="Submit"
87
+ type="submit"
88
+ variant="primary"
89
+
90
+ />
91
+ </form>
92
+ <Card marginTop="lg">
93
+ <Body
94
+ text="Current Form Values:"
95
+ variant="bold"
96
+ />
97
+ <pre style={{ marginTop: '8px', color: "white" }}>
98
+ {JSON.stringify(formValues, null, 2)}
99
+ </pre>
100
+ </Card>
101
+ </Card>
102
+ </div>
103
+ )
104
+ }
105
+
106
+ export default SelectForm
107
+
108
+
109
+
@@ -30,6 +30,7 @@ examples:
30
30
  - select_inline_show_arrow: Select Inline (Always Show Arrow)
31
31
  - select_inline_compact: Select Inline Compact
32
32
  - select_multiple: Select Multiple
33
+ - select_form: Form
33
34
 
34
35
  swift:
35
36
  - select_default_swift: Default
@@ -10,3 +10,4 @@ export { default as SelectInline } from './_select_inline.jsx'
10
10
  export { default as SelectInlineShowArrow } from './_select_inline_show_arrow.jsx'
11
11
  export { default as SelectInlineCompact } from './_select_inline_compact.jsx'
12
12
  export { default as SelectMultiple } from './_select_multiple.jsx'
13
+ export { default as SelectForm } from './_select_form.jsx'
@@ -16,7 +16,6 @@ examples:
16
16
  - text_input_add_on: Add On
17
17
  - text_input_inline: Inline
18
18
  - text_input_no_label: No Label
19
- - text_input_mask: Mask
20
19
 
21
20
  swift:
22
21
  - text_input_default_swift: Default
@@ -5,4 +5,3 @@ export { default as TextInputDisabled } from './_text_input_disabled.jsx'
5
5
  export { default as TextInputAddOn } from './_text_input_add_on.jsx'
6
6
  export { default as TextInputInline } from './_text_input_inline.jsx'
7
7
  export { default as TextInputNoLabel } from './_text_input_no_label.jsx'
8
- export { default as TextInputMask } from './_text_input_mask.jsx'