playbook_ui 15.6.0.pre.alpha.draggableask12907 → 15.6.0.pre.alpha.play2552collapsibleiconrefactor12903

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: 4b0f188b0fa59810bc278d4f0fd8211ec8488472f38d61f3cf422edacdb4e918
4
- data.tar.gz: 8b4daf06eead8575f94da3c2307c6df40bb49cf17128b765d7a234bbacaa895c
3
+ metadata.gz: b56117c9b815041948a7dc894ebad0caebf095ff1da7801e06ed7fec18da7eeb
4
+ data.tar.gz: 8e9f82470ea23ae8863567c8df94451dd927cdcbbaa7cf9d174a5fcd2ee627b7
5
5
  SHA512:
6
- metadata.gz: 4c2cb58e0e5f3891d8c15954fc83e9a0e5904d71600883654d15a9ffd339c399d9f19bb4688401d2f735c3adaa557e57108a43ac6c743df9587e8d2f99032913
7
- data.tar.gz: a939b477c9565c5bdb334fd8bab4cc7abc507ff2f4b6e30a18e422b22233db8598df43811066c443253094e9f8609f0ca3e0058409a1beeed20a9f9d5264c348
6
+ metadata.gz: 58c7104cca8322ba83b49875a68bc2a0a49ed6334337bf4a0e00bfa6d8c062bc45b8aadbe2644592a9dc358348cd972b47fef79efb89fbf32135c2f345f6bbd0
7
+ data.tar.gz: 1c1933805f799e9aeca540a29d3ac0861de4c8c8900ecfb62c7e1ea5eb1800e0df5d7dd4164afffb92788d84d19ed486921d7a572afcf4cf5823c5eeb64d5784
@@ -25,11 +25,11 @@ exports[`html structure is correct 1`] = `
25
25
  >
26
26
  <div
27
27
  class="icon_wrapper"
28
- style="vertical-align: middle; color: rgb(193, 205, 214);"
28
+ style="vertical-align: middle;"
29
29
  >
30
30
  <svg
31
31
  aria-label="chevron-down icon"
32
- class="pb_custom_icon svg-inline--fa svg_lg svg_fw"
32
+ class="pb_custom_icon svg-inline--fa color_text_lt_lighter svg_lg svg_fw"
33
33
  color="currentColor"
34
34
  fill="none"
35
35
  height="auto"
@@ -27,12 +27,12 @@ type colorMap = {
27
27
  };
28
28
 
29
29
  const colorMap = {
30
- default: "#242B42",
31
- light: "#687887",
32
- lighter: "#C1CDD6",
33
- link: "#0056CF",
34
- error: "#FF2229",
35
- success: "#00CA74",
30
+ default:"text_lt_default",
31
+ light: "text_lt_light",
32
+ lighter: "text_lt_lighter",
33
+ link: "primary",
34
+ error: "error",
35
+ success: "text_dk_success_sm",
36
36
  };
37
37
 
38
38
  const CollapsibleIcon = ({
@@ -68,9 +68,10 @@ const CollapsibleIcon = ({
68
68
  className="icon_wrapper"
69
69
  key={icon ? showIcon(icon)[0] : "chevron-down"}
70
70
  onClick={(e) => handleIconClick(e)}
71
- style={{ verticalAlign: "middle", color: color }}
71
+ style={{ verticalAlign: "middle"}}
72
72
  >
73
73
  <Icon
74
+ color={color}
74
75
  icon={icon ? showIcon(icon)[0] : "chevron-down"}
75
76
  size={iconSize}
76
77
  />
@@ -80,9 +81,10 @@ const CollapsibleIcon = ({
80
81
  className="icon_wrapper"
81
82
  key={icon ? showIcon(icon)[1] : "chevron-up"}
82
83
  onClick={(e) => handleIconClick(e)}
83
- style={{ verticalAlign: "middle", color: color }}
84
+ style={{ verticalAlign: "middle" }}
84
85
  >
85
86
  <Icon
87
+ color={color}
86
88
  icon={icon ? showIcon(icon)[1] : "chevron-up"}
87
89
  size={iconSize}
88
90
  />
@@ -7,7 +7,6 @@ const CollapsibleIcons = (props) => {
7
7
  <>
8
8
  <Collapsible
9
9
  icon={['plus','minus']}
10
- iconColor='white'
11
10
  >
12
11
  <Collapsible.Main {...props}>
13
12
  <div>{'Main Section'}</div>
@@ -22,7 +22,6 @@ const CollapsibleState = (props) => {
22
22
  <Collapsible
23
23
  collapsed={isCollapsed}
24
24
  icon={["plus", "minus"]}
25
- iconColor='white'
26
25
  padding="none"
27
26
  >
28
27
  <Collapsible.Main padding="sm"
@@ -41,7 +40,6 @@ const CollapsibleState = (props) => {
41
40
  <Collapsible
42
41
  collapsed={isCollapsed}
43
42
  icon={["plus", "minus"]}
44
- iconColor='white'
45
43
  padding="none"
46
44
  >
47
45
  <Collapsible.Main padding="sm"
@@ -60,7 +58,6 @@ const CollapsibleState = (props) => {
60
58
  <Collapsible
61
59
  collapsed={isCollapsed}
62
60
  icon={["plus", "minus"]}
63
- iconColor='white'
64
61
  padding="none"
65
62
  >
66
63
  <Collapsible.Main padding="sm"
@@ -1,4 +1,4 @@
1
- import React, { createContext, useReducer, useContext, useEffect, useMemo, useRef } from "react";
1
+ import React, { createContext, useReducer, useContext, useEffect, useMemo } from "react";
2
2
  import { InitialStateType, ActionType, DraggableProviderType } from "./types";
3
3
 
4
4
  const initialState: InitialStateType = {
@@ -92,35 +92,6 @@ const reducer = (state: InitialStateType, action: ActionType) => {
92
92
  return { ...state, items: newItems };
93
93
  }
94
94
 
95
- // Reset item back to its original container and position (e.g., when drag ends without valid drop)
96
- case "RESET_DRAG_CONTAINER": {
97
- const { itemId, originalContainer, originalIndex } = action.payload;
98
- const newItems = [...state.items];
99
- const draggedItem = newItems.find(item => item && item.id === itemId);
100
-
101
- if (!draggedItem) return state;
102
-
103
- const currentIndex = newItems.indexOf(draggedItem);
104
-
105
- // Remove from current position
106
- newItems.splice(currentIndex, 1);
107
-
108
- // Restore container property and insert at original index
109
- const restoredItem = { ...draggedItem, container: originalContainer };
110
-
111
- // Insert at original index, or at end if index is invalid
112
- if (originalIndex !== undefined && originalIndex >= 0) {
113
- newItems.splice(originalIndex, 0, restoredItem);
114
- } else {
115
- newItems.push(restoredItem);
116
- }
117
-
118
- return {
119
- ...state,
120
- items: newItems
121
- };
122
- }
123
-
124
95
  default:
125
96
  return state;
126
97
  }
@@ -148,29 +119,6 @@ export const DraggableProvider = ({
148
119
  enableCrossContainerPreview = false,
149
120
  }: DraggableProviderType) => {
150
121
  const [state, dispatch] = useReducer(reducer, initialState);
151
-
152
- // Track drag state for global listener
153
- const dragStateRef = useRef<{
154
- isDragging: boolean;
155
- draggedItemId: string;
156
- originalContainer: string;
157
- originalIndex: number;
158
- currentContainer: string;
159
- dropOccurred: boolean;
160
- }>({
161
- isDragging: false,
162
- draggedItemId: '',
163
- originalContainer: '',
164
- originalIndex: -1,
165
- currentContainer: '',
166
- dropOccurred: false,
167
- });
168
-
169
- // Track current state for use in gated event listeners (avoid stale closures)
170
- const stateRef = useRef(state);
171
- useEffect(() => {
172
- stateRef.current = state;
173
- }, [state]);
174
122
 
175
123
  // Parse dropZone prop - handle both string format (backward compatibility) and object format
176
124
  let dropZoneType = 'ghost';
@@ -200,209 +148,7 @@ export const DraggableProvider = ({
200
148
  onReorder(state.items);
201
149
  }, [state.items]);
202
150
 
203
- // Monitor for failed drops by detecting mouse/pointer release during drag (this is needed for cross container preview)
204
- useEffect(() => {
205
- if (!enableCrossContainerPreview) return;
206
-
207
- // Allow drops anywhere on the document by preventing default dragover
208
- const handleGlobalDragOver = (e: DragEvent) => {
209
- if (dragStateRef.current.isDragging) {
210
- e.preventDefault();
211
- }
212
- };
213
-
214
- // Handle drops anywhere on the document (including non-container areas)
215
- const handleGlobalDrop = (e: DragEvent) => {
216
- if (!dragStateRef.current.isDragging) return;
217
-
218
- // If a container already handled the drop, don't process again
219
- if (dragStateRef.current.dropOccurred) return;
220
-
221
- e.preventDefault();
222
-
223
- // If we reach here, it means the drop was NOT on a valid container
224
- // (otherwise the container's handleDrop would have set dropOccurred = true)
225
- // So we should ALWAYS reset to original container for invalid drops
226
- const originalContainer = dragStateRef.current.originalContainer;
227
-
228
- dispatch({
229
- type: 'RESET_DRAG_CONTAINER',
230
- payload: {
231
- itemId: dragStateRef.current.draggedItemId,
232
- originalContainer: originalContainer,
233
- originalIndex: dragStateRef.current.originalIndex,
234
- },
235
- });
236
-
237
- dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
238
- dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
239
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
240
-
241
- // Clear drag state
242
- dragStateRef.current = {
243
- isDragging: false,
244
- draggedItemId: '',
245
- originalContainer: '',
246
- originalIndex: -1,
247
- currentContainer: '',
248
- dropOccurred: false,
249
- };
250
- };
251
-
252
- const handleGlobalMouseUp = () => {
253
- // If we're dragging and mouse is released, wait a bit to see if drop occurs
254
- if (dragStateRef.current.isDragging) {
255
- setTimeout(() => {
256
- const currentContainer = dragStateRef.current.currentContainer;
257
-
258
- // If drop still hasn't occurred, check if item is in a different container
259
- if (dragStateRef.current.isDragging && !dragStateRef.current.dropOccurred) {
260
- // If item is in a different container than original, treat it as a successful drop
261
- if (currentContainer && currentContainer !== dragStateRef.current.originalContainer) {
262
- // Trigger onDrop callback with the current container
263
- if (onDrop) {
264
- const draggedItem = stateRef.current.items.find(item => item && item.id === dragStateRef.current.draggedItemId);
265
- const updatedItem = draggedItem ? { ...draggedItem, container: currentContainer } : null;
266
- const itemsInContainer = stateRef.current.items.filter(item => item && item.container === currentContainer);
267
- const indexInContainer = itemsInContainer.findIndex(item => item && item.id === dragStateRef.current.draggedItemId);
268
- const itemAbove = indexInContainer > 0 ? itemsInContainer[indexInContainer - 1] : null;
269
- const itemBelow = indexInContainer < itemsInContainer.length - 1 ? itemsInContainer[indexInContainer + 1] : null;
270
-
271
- onDrop(
272
- dragStateRef.current.draggedItemId,
273
- currentContainer,
274
- dragStateRef.current.originalContainer,
275
- updatedItem,
276
- itemAbove,
277
- itemBelow
278
- );
279
- }
280
- } else {
281
- dispatch({
282
- type: 'RESET_DRAG_CONTAINER',
283
- payload: {
284
- itemId: dragStateRef.current.draggedItemId,
285
- originalContainer: dragStateRef.current.originalContainer,
286
- originalIndex: dragStateRef.current.originalIndex,
287
- },
288
- });
289
- }
290
- dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
291
- dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
292
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
293
-
294
- // Clear drag state
295
- dragStateRef.current = {
296
- isDragging: false,
297
- draggedItemId: '',
298
- originalContainer: '',
299
- originalIndex: -1,
300
- currentContainer: '',
301
- dropOccurred: false,
302
- };
303
- }
304
- }, 50); // Small delay to let drop event fire if it's going to
305
- }
306
- };
307
-
308
- // Detect when drag leaves document boundaries
309
- const handleDragLeave = (e: DragEvent) => {
310
- // Check if we're leaving the document (relatedTarget will be null)
311
- if (!e.relatedTarget && dragStateRef.current.isDragging && !dragStateRef.current.dropOccurred) {
312
- // Drag left the document: reset to original container immediately
313
- dispatch({
314
- type: 'RESET_DRAG_CONTAINER',
315
- payload: {
316
- itemId: dragStateRef.current.draggedItemId,
317
- originalContainer: dragStateRef.current.originalContainer,
318
- originalIndex: dragStateRef.current.originalIndex,
319
- },
320
- });
321
- dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
322
- dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
323
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
324
-
325
- // Clear drag state
326
- dragStateRef.current = {
327
- isDragging: false,
328
- draggedItemId: '',
329
- originalContainer: '',
330
- originalIndex: -1,
331
- currentContainer: '',
332
- dropOccurred: false,
333
- };
334
- }
335
- };
336
-
337
- document.addEventListener('dragover', handleGlobalDragOver);
338
- document.addEventListener('drop', handleGlobalDrop);
339
- document.addEventListener('dragleave', handleDragLeave);
340
- document.addEventListener('mouseup', handleGlobalMouseUp);
341
- document.addEventListener('pointerup', handleGlobalMouseUp);
342
-
343
- return () => {
344
- document.removeEventListener('dragover', handleGlobalDragOver);
345
- document.removeEventListener('drop', handleGlobalDrop);
346
- document.removeEventListener('dragleave', handleDragLeave);
347
- document.removeEventListener('mouseup', handleGlobalMouseUp);
348
- document.removeEventListener('pointerup', handleGlobalMouseUp);
349
- };
350
- }, [enableCrossContainerPreview]);
351
-
352
- // Detect when dragging stops (isDragging goes from truthy to empty)
353
- const prevIsDraggingRef = useRef(state.isDragging);
354
-
355
- useEffect(() => {
356
- if (!enableCrossContainerPreview) return;
357
-
358
- const wasDragging = prevIsDraggingRef.current;
359
- const isNowDragging = state.isDragging;
360
-
361
- // Drag just ended (was dragging, now not)
362
- if (wasDragging && !isNowDragging) {
363
-
364
- // If drop didn't occur, reset to original container
365
- if (!dragStateRef.current.dropOccurred && dragStateRef.current.draggedItemId) {
366
- dispatch({
367
- type: 'RESET_DRAG_CONTAINER',
368
- payload: {
369
- itemId: dragStateRef.current.draggedItemId,
370
- originalContainer: dragStateRef.current.originalContainer,
371
- originalIndex: dragStateRef.current.originalIndex,
372
- },
373
- });
374
- }
375
-
376
- // Clear drag state
377
- dragStateRef.current = {
378
- isDragging: false,
379
- draggedItemId: '',
380
- originalContainer: '',
381
- originalIndex: -1,
382
- currentContainer: '',
383
- dropOccurred: false,
384
- };
385
- }
386
-
387
- prevIsDraggingRef.current = isNowDragging;
388
- }, [state.isDragging, enableCrossContainerPreview]);
389
-
390
151
  const handleDragStart = (id: string, container: string) => {
391
- // Track drag in ref for global listener
392
- if (enableCrossContainerPreview) {
393
- // Find the original index of the item
394
- const originalIndex = state.items.findIndex(item => item && item.id === id);
395
-
396
- dragStateRef.current = {
397
- isDragging: true,
398
- draggedItemId: id,
399
- originalContainer: container,
400
- originalIndex: originalIndex,
401
- currentContainer: container,
402
- dropOccurred: false,
403
- };
404
- }
405
-
406
152
  dispatch({ type: 'SET_DRAG_DATA', payload: { id: id, initialGroup: container, originId: providerId } });
407
153
  dispatch({ type: 'SET_IS_DRAGGING', payload: id });
408
154
  if (onDragStart) onDragStart(id, container);
@@ -435,10 +181,6 @@ export const DraggableProvider = ({
435
181
  newContainer: container,
436
182
  },
437
183
  });
438
- // Update current container in ref
439
- if (enableCrossContainerPreview) {
440
- dragStateRef.current.currentContainer = container;
441
- }
442
184
  } else {
443
185
  // Same container: keep original behavior
444
186
  dispatch({
@@ -451,10 +193,7 @@ export const DraggableProvider = ({
451
193
  dispatch({type: "REORDER_ITEMS", payload: { dragId: state.dragData.id, targetId: id }});
452
194
  }
453
195
 
454
- // When enableCrossContainerPreview is true, preserve the original initialGroup
455
- // Otherwise, update it to track the current container
456
- const newInitialGroup = enableCrossContainerPreview ? state.dragData.initialGroup : container;
457
- dispatch({type: "SET_DRAG_DATA",payload: {id: state.dragData.id, initialGroup: newInitialGroup, originId: providerId}});
196
+ dispatch({type: "SET_DRAG_DATA",payload: {id: state.dragData.id, initialGroup: container, originId: providerId}});
458
197
  }
459
198
  if (onDragEnter) onDragEnter(id, container);
460
199
  };
@@ -463,29 +202,17 @@ export const DraggableProvider = ({
463
202
  const draggedItemId = state.dragData.id;
464
203
  const originalContainer = state.dragData.initialGroup;
465
204
 
466
- // If enableCrossContainerPreview is true and no drop occurred, reset item to original container
467
- if (enableCrossContainerPreview && !dragStateRef.current.dropOccurred && draggedItemId && originalContainer) {
468
- dispatch({ type: 'RESET_DRAG_CONTAINER', payload: { itemId: draggedItemId, originalContainer, originalIndex: dragStateRef.current.originalIndex } });
469
- }
470
-
471
205
  dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
472
206
  dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
473
207
  dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
474
-
475
- // Only call onDragEnd if drop didn't already occur (for enableCrossContainerPreview)
476
- // If drop occurred, handleDrop or global drop handler already called onDragEnd
477
- if (enableCrossContainerPreview && dragStateRef.current.dropOccurred) {
478
- return;
479
- }
480
-
481
208
  if (onDragEnd) {
482
209
  if (!enableCrossContainerPreview) {
483
210
  onDragEnd();
484
211
  } else {
485
- const draggedItem = stateRef.current.items.find(item => item && item.id === draggedItemId);
212
+ const draggedItem = state.items.find(item => item && item.id === draggedItemId);
486
213
  const finalContainer = draggedItem ? draggedItem.container : originalContainer;
487
214
 
488
- const itemsInContainer = stateRef.current.items.filter(item => item && item.container === finalContainer);
215
+ const itemsInContainer = state.items.filter(item => item && item.container === finalContainer);
489
216
  const indexInContainer = itemsInContainer.findIndex(item => item && item.id === draggedItemId);
490
217
  const itemAbove = indexInContainer > 0 ? itemsInContainer[indexInContainer - 1] : null;
491
218
  const itemBelow = indexInContainer < itemsInContainer.length - 1 ? itemsInContainer[indexInContainer + 1] : null;
@@ -510,58 +237,32 @@ export const DraggableProvider = ({
510
237
 
511
238
  const draggedItemId = state.dragData.id;
512
239
  const originalContainer = state.dragData.initialGroup;
513
-
514
- // Mark drop as successful in ref for global listener
515
- if (enableCrossContainerPreview) {
516
- dragStateRef.current.dropOccurred = true;
517
- }
518
-
519
- // Gather data for callbacks BEFORE clearing state
520
- const isCrossContainer = container !== originalContainer;
521
- let callbackData = null;
522
-
523
- if (enableCrossContainerPreview) {
524
- const draggedItem = stateRef.current.items.find(item => item && item.id === draggedItemId);
525
- const updatedItem = draggedItem ? { ...draggedItem, container } : null;
526
- const itemsInContainer = stateRef.current.items.filter(item => item && item.container === container);
527
- const indexInContainer = itemsInContainer.findIndex(item => item && item.id === draggedItemId);
528
- const itemAbove = indexInContainer > 0 ? itemsInContainer[indexInContainer - 1] : null;
529
- const itemBelow = indexInContainer < itemsInContainer.length - 1 ? itemsInContainer[indexInContainer + 1] : null;
530
-
531
- callbackData = { updatedItem, itemAbove, itemBelow };
532
- }
533
240
 
534
241
  dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
535
242
  dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
536
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
537
243
  changeCategory(state.dragData.id, container);
538
-
539
244
  if (onDrop) {
540
245
  if (!enableCrossContainerPreview) {
541
246
  onDrop(container);
542
247
  } else {
248
+ const draggedItem = state.items.find(item => item && item.id === draggedItemId);
249
+ const updatedItem = draggedItem ? { ...draggedItem, container } : null;
250
+
251
+ const itemsInContainer = state.items.filter(item => item && item.container === container);
252
+ const indexInContainer = itemsInContainer.findIndex(item => item && item.id === draggedItemId);
253
+ const itemAbove = indexInContainer > 0 ? itemsInContainer[indexInContainer - 1] : null;
254
+ const itemBelow = indexInContainer < itemsInContainer.length - 1 ? itemsInContainer[indexInContainer + 1] : null;
255
+
543
256
  onDrop(
544
257
  draggedItemId,
545
258
  container,
546
259
  originalContainer,
547
- callbackData.updatedItem,
548
- callbackData.itemAbove,
549
- callbackData.itemBelow
260
+ updatedItem,
261
+ itemAbove,
262
+ itemBelow
550
263
  );
551
264
  }
552
265
  }
553
-
554
- // Trigger onDragEnd ONLY for cross-container drops (dragend doesn't fire reliably in that case)
555
- // For same-container drops, handleDragEnd will be called normally
556
- if (enableCrossContainerPreview && isCrossContainer && onDragEnd && callbackData) {
557
- onDragEnd(
558
- draggedItemId,
559
- container,
560
- originalContainer,
561
- callbackData.itemAbove,
562
- callbackData.itemBelow
563
- );
564
- }
565
266
  };
566
267
 
567
268
  const handleDragOver = (e: Event, container: string) => {
@@ -580,8 +281,6 @@ export const DraggableProvider = ({
580
281
  type: "MOVE_TO_CONTAINER_END",
581
282
  payload: { dragId: state.dragData.id, newContainer: container },
582
283
  });
583
- // Update current container in ref
584
- dragStateRef.current.currentContainer = container;
585
284
  }
586
285
  }
587
286
 
@@ -23,7 +23,7 @@ export type ActionType =
23
23
  | { type: 'REORDER_ITEMS'; payload: { dragId: string; targetId: string } }
24
24
  | { type: 'REORDER_ITEMS_CROSS_CONTAINER'; payload: { dragId: string; targetId: string; newContainer: string } }
25
25
  | { type: 'MOVE_TO_CONTAINER_END'; payload: { dragId: string; newContainer: string } }
26
- | { type: 'RESET_DRAG_CONTAINER'; payload: { itemId: string; originalContainer: string, originalIndex: number } };
26
+ | { type: 'RESET_DRAG_CONTAINER'; payload: { itemId: string; originalContainer: string } };
27
27
 
28
28
  export interface DropZoneConfig {
29
29
  type?: 'ghost' | 'outline' | 'shadow' | 'line';
@@ -1 +1 @@
1
- Error shows that the radio option must be selected or is invalid (i.e. when used in a form it signals a user to fix an error).
1
+ Error shows that the radio option must be selected or is invalid (ie when used in a form it signals a user to fix an error).
@@ -1 +1 @@
1
- Select w/ Error shows that an option must be selected or is invalid (i.e. when used in a form it signals a user to fix an error).
1
+ Select w/ Error shows that the radio option must be selected or is invalid (ie when used in a form it signals a user to fix an error).
@@ -1 +1 @@
1
- Text Input w/ Error shows that the input must be filled out (i.e. when used in a form it signals a user to fix an error).
1
+ Text Input w/ Error shows that the radio option must be selected or is invalid (ie when used in a form it signals a user to fix an error).
@@ -1 +1 @@
1
- Textarea w/ Error shows that the input must be filled out (i.e. when used in a form it signals a user to fix an error).
1
+ Textarea w/ Error shows that the radio option must be selected or is invalid (ie when used in a form it signals a user to fix an error).
@@ -139,7 +139,8 @@ $text_colors: (
139
139
  text_lt_lighter: $text_lt_lighter,
140
140
  text_dk_default: $text_dk_default,
141
141
  text_dk_light: $text_dk_light,
142
- text_dk_lighter: $text_dk_lighter
142
+ text_dk_lighter: $text_dk_lighter,
143
+ text_dk_success_sm: $text_dk_success_sm
143
144
  );
144
145
 
145
146
  /* Data colors ------------------------*/