@rippling/rippling-sdk 0.2.0-alpha.49 → 0.2.0-alpha.50
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/lib/manifest/custom-object-page-layout.d.mts +148 -34
- package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
- package/lib/manifest/custom-object-page-layout.d.ts +148 -34
- package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
- package/lib/manifest/custom-object-page-layout.js +61 -18
- package/lib/manifest/custom-object-page-layout.js.map +1 -1
- package/lib/manifest/custom-object-page-layout.mjs +61 -18
- package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
- package/lib/manifest/custom-object.d.mts +1 -1
- package/lib/manifest/custom-object.d.ts +1 -1
- package/lib/manifest/custom-object.js +1 -1
- package/lib/manifest/custom-object.mjs +1 -1
- package/lib/manifest/field.d.mts +3 -3
- package/lib/manifest/field.d.ts +3 -3
- package/lib/manifest/field.js +2 -2
- package/lib/manifest/field.mjs +2 -2
- package/lib/manifest/index.d.mts +1 -1
- package/lib/manifest/index.d.mts.map +1 -1
- package/lib/manifest/index.d.ts +1 -1
- package/lib/manifest/index.d.ts.map +1 -1
- package/lib/manifest/index.js.map +1 -1
- package/lib/manifest/index.mjs.map +1 -1
- package/lib/sdui/components.d.mts +100 -211
- package/lib/sdui/components.d.mts.map +1 -1
- package/lib/sdui/components.d.ts +100 -211
- package/lib/sdui/components.d.ts.map +1 -1
- package/lib/sdui/components.js +96 -182
- package/lib/sdui/components.js.map +1 -1
- package/lib/sdui/components.mjs +93 -178
- package/lib/sdui/components.mjs.map +1 -1
- package/lib/sdui/index.d.mts +12 -52
- package/lib/sdui/index.d.mts.map +1 -1
- package/lib/sdui/index.d.ts +12 -52
- package/lib/sdui/index.d.ts.map +1 -1
- package/lib/sdui/index.js +10 -50
- package/lib/sdui/index.js.map +1 -1
- package/lib/sdui/index.mjs +5 -25
- package/lib/sdui/index.mjs.map +1 -1
- package/lib/sdui/propTypes.d.mts +3156 -3515
- package/lib/sdui/propTypes.d.mts.map +1 -1
- package/lib/sdui/propTypes.d.ts +3156 -3515
- package/lib/sdui/propTypes.d.ts.map +1 -1
- package/lib/sdui/propTypes.js +1 -1
- package/lib/sdui/propTypes.mjs +1 -1
- package/package.json +1 -1
- package/src/lib/manifest/custom-object-page-layout.ts +294 -79
- package/src/lib/manifest/custom-object.ts +1 -1
- package/src/lib/manifest/field.ts +3 -3
- package/src/lib/manifest/index.ts +27 -0
- package/src/lib/sdui/components.ts +181 -332
- package/src/lib/sdui/index.ts +13 -93
- package/src/lib/sdui/propTypes.ts +3509 -3892
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/lib/sdui/components.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AUTO-GENERATED from catalog-schema.json
|
|
3
|
-
* Components:
|
|
3
|
+
* Components: 134
|
|
4
4
|
*
|
|
5
5
|
* Do not edit manually. Run: node tools/sdui/builder/build.js
|
|
6
6
|
*/
|
|
@@ -53,9 +53,9 @@ export const AiIcon = createComponent('AiIcon');
|
|
|
53
53
|
* A persistent, high-priority notice that conveys critical information (errors, warnings, success confirmations, or informational messages) and guides users to proceed or resolve issues. Appears with page content and remains visible until dismissed or resolved. Use for system-level or page-level messaging, not for ephemeral feedback (use SnackBar instead) or for interruptions requiring immediate input (use Modal instead).
|
|
54
54
|
*/
|
|
55
55
|
export const Alert = createComponent('Alert', {
|
|
56
|
+
onDismiss: 'dismiss',
|
|
56
57
|
onPressPrimary: 'pressPrimary',
|
|
57
58
|
onPressSecondary: 'pressSecondary',
|
|
58
|
-
onDismiss: 'dismiss',
|
|
59
59
|
});
|
|
60
60
|
/**
|
|
61
61
|
* Renders pre-built Lottie animations from a curated library. Each animation type maps to an SVG animation that plays on mount. Use for empty states, onboarding flows, status illustrations, and feature highlights.
|
|
@@ -73,18 +73,18 @@ export const AppGroupLoader = createComponent('AppGroupLoader');
|
|
|
73
73
|
* A multi-select dropdown for choosing multiple options from grouped categories, with app-group styling. Use when users need to pick several items organized into labeled groups (e.g. apps by category). For single selection or ungrouped options, use Select instead.
|
|
74
74
|
*/
|
|
75
75
|
export const AppGroupSelect = createComponent('AppGroupSelect', {
|
|
76
|
-
onChange: 'change',
|
|
77
76
|
onBlur: 'blur',
|
|
77
|
+
onChange: 'change',
|
|
78
78
|
onFocus: 'focus',
|
|
79
|
-
onPaste: 'paste',
|
|
80
79
|
onMenuToggle: 'menuToggle',
|
|
80
|
+
onPaste: 'paste',
|
|
81
81
|
});
|
|
82
82
|
/**
|
|
83
83
|
* Application navigation bar with routing support. Displays a horizontal tab bar or vertical sidebar with links, icons, badges, and optional nested sub-navigation. Use for top-level page navigation.
|
|
84
84
|
*/
|
|
85
85
|
export const AppNavBar = createComponent('AppNavBar', {
|
|
86
|
-
onNavigate: 'navigate',
|
|
87
86
|
onAction: 'action',
|
|
87
|
+
onNavigate: 'navigate',
|
|
88
88
|
});
|
|
89
89
|
/**
|
|
90
90
|
* A horizontal rule that visually divides sections of content, with optional centered text (e.g. "OR"). Use for content separation — use Divider for separating individual list items.
|
|
@@ -118,10 +118,10 @@ export const Breadcrumb = createComponent('Breadcrumb', {
|
|
|
118
118
|
* An interactive element that allows users to trigger actions or events with a single click. Use for actions, not navigation — use links for navigation. Use IconButton when space is limited and the action is not critical.
|
|
119
119
|
*/
|
|
120
120
|
export const Button = createComponent('Button', {
|
|
121
|
-
onPress: 'press',
|
|
122
|
-
onPressWhileDisabled: 'pressWhileDisabled',
|
|
123
121
|
onMouseEnter: 'mouseEnter',
|
|
124
122
|
onMouseLeave: 'mouseLeave',
|
|
123
|
+
onPress: 'press',
|
|
124
|
+
onPressWhileDisabled: 'pressWhileDisabled',
|
|
125
125
|
});
|
|
126
126
|
/**
|
|
127
127
|
* Layout container for arranging multiple Button elements horizontally or vertically with configurable placement, alignment, gap, and wrapping.
|
|
@@ -131,11 +131,11 @@ export const ButtonGroup = createComponent('ButtonGroup');
|
|
|
131
131
|
* Visually groups related information and components into a contained, interactive card. Use for summarizing content, facilitating comparisons, or guiding users toward specific actions. Renders as a simple layout container when used with children only (no title/content).
|
|
132
132
|
*/
|
|
133
133
|
export const Card = createComponent('Card', {
|
|
134
|
-
|
|
135
|
-
onDelete: 'delete',
|
|
134
|
+
onAction: 'action',
|
|
136
135
|
onAdd: 'add',
|
|
137
136
|
onClick: 'click',
|
|
138
|
-
|
|
137
|
+
onDelete: 'delete',
|
|
138
|
+
onEdit: 'edit',
|
|
139
139
|
});
|
|
140
140
|
/**
|
|
141
141
|
* A layout container that arranges Card children (Card, LocationCard, LoaderCard) in an auto-sizing responsive grid. Automatically computes a uniform card width based on available container space.
|
|
@@ -148,11 +148,9 @@ export const Carousel = createComponent('Carousel', {
|
|
|
148
148
|
onDone: 'done',
|
|
149
149
|
});
|
|
150
150
|
/**
|
|
151
|
-
*
|
|
151
|
+
* A skeleton placeholder shown while chart or graph content is loading. Use when the content area will contain a chart and you want to reduce perceived loading time and prevent layout shift.
|
|
152
152
|
*/
|
|
153
|
-
export const ChartLoader = createComponent('ChartLoader'
|
|
154
|
-
onLoad: 'load',
|
|
155
|
-
});
|
|
153
|
+
export const ChartLoader = createComponent('ChartLoader');
|
|
156
154
|
/**
|
|
157
155
|
* A flexible multi-select interface with nested lists, allowing users to toggle selections using switches or checkboxes. Use for hierarchical options with parent-child relationships, bulk selection, or settings where multiple configurations can be enabled simultaneously.
|
|
158
156
|
*/
|
|
@@ -163,15 +161,15 @@ export const CheckList = createComponent('CheckList', {
|
|
|
163
161
|
* A checkbox that lets users select or unselect an option. Use for toggling a single boolean (e.g. "I agree") or selecting multiple items from a list. Use Radio for mutually exclusive choices; use Toggle when the change takes effect immediately.
|
|
164
162
|
*/
|
|
165
163
|
export const Checkbox = createComponent('Checkbox', {
|
|
166
|
-
onChange: 'change',
|
|
167
164
|
onBlur: 'blur',
|
|
165
|
+
onChange: 'change',
|
|
168
166
|
});
|
|
169
167
|
/**
|
|
170
168
|
* A group of checkboxes that lets users select multiple options from a predefined list. Use when users can choose all, some, or none of the options. Use Radio instead for mutually exclusive single selection, or Toggle for immediate on/off activation.
|
|
171
169
|
*/
|
|
172
170
|
export const CheckboxGroup = createComponent('CheckboxGroup', {
|
|
173
|
-
onChange: 'change',
|
|
174
171
|
onBlur: 'blur',
|
|
172
|
+
onChange: 'change',
|
|
175
173
|
});
|
|
176
174
|
/**
|
|
177
175
|
* A compact, interactive element for representing entities, attributes, filters, or complex criteria. Use for user-selected tags, filter conditions, or dismissible items. Use Label instead for static semantic color-coded metadata like "New" or "Caution", and Button for calls to action.
|
|
@@ -194,8 +192,8 @@ export const Circle = createComponent('Circle');
|
|
|
194
192
|
* A form input for selecting a color from a predefined palette or entering a custom hex value. Use for brand color selection, theme customization, or any setting where users choose a specific color.
|
|
195
193
|
*/
|
|
196
194
|
export const ColorPicker = createComponent('ColorPicker', {
|
|
197
|
-
onChange: 'change',
|
|
198
195
|
onBlur: 'blur',
|
|
196
|
+
onChange: 'change',
|
|
199
197
|
});
|
|
200
198
|
/**
|
|
201
199
|
* A low-level SVG shimmer placeholder used to indicate loading state. Renders a plain animated rectangle whose dimensions you control. For shaped placeholders (text lines, circles, boxes), use Skeleton instead.
|
|
@@ -213,29 +211,33 @@ export const Country = createComponent('Country');
|
|
|
213
211
|
* Specialized input for entering monetary amounts with currency symbol/code prefix and locale-aware number formatting. Supports arithmetic expression evaluation, currency type selection via dropdown, and decimal precision control.
|
|
214
212
|
*/
|
|
215
213
|
export const Currency = createComponent('Currency', {
|
|
216
|
-
onChange: 'change',
|
|
217
214
|
onBlur: 'blur',
|
|
215
|
+
onChange: 'change',
|
|
218
216
|
});
|
|
217
|
+
/**
|
|
218
|
+
* Auto-fetching grid for Rippling Custom Objects. Provide objectApiName and fieldApiNames to display records with auto-generated columns, pagination, sorting, and field-type formatting. Increment refreshKey to force a data refresh after mutations.
|
|
219
|
+
*/
|
|
220
|
+
export const CustomObjectGrid = createComponent('CustomObjectGrid');
|
|
219
221
|
/**
|
|
220
222
|
* A date input that lets users select a single date via calendar or keyboard entry. Use for collecting exact, approximate, or memorable dates (e.g. birth date, start date) and for scheduling. Optionally includes time selection with timezone support. Use DateRange for start/end date pairs; use DateInlineMulti for selecting multiple individual dates without an input field.
|
|
221
223
|
*/
|
|
222
224
|
export const Date = createComponent('Date', {
|
|
223
|
-
onChange: 'change',
|
|
224
225
|
onBlur: 'blur',
|
|
226
|
+
onChange: 'change',
|
|
225
227
|
});
|
|
226
228
|
/**
|
|
227
229
|
* An always-visible inline calendar for selecting multiple individual dates without an input field. Use when users need to pick several non-contiguous dates (e.g. holidays, blocked days). Use Date for single-date entry with an input field, or DateRange for start/end date pairs.
|
|
228
230
|
*/
|
|
229
231
|
export const DateInlineMulti = createComponent('DateInlineMulti', {
|
|
230
|
-
onChange: 'change',
|
|
231
232
|
onBlur: 'blur',
|
|
233
|
+
onChange: 'change',
|
|
232
234
|
});
|
|
233
235
|
/**
|
|
234
236
|
* A date range picker for selecting a start date and end date pair, such as travel dates, leave periods, or reporting intervals. Use Date instead when only a single date is needed.
|
|
235
237
|
*/
|
|
236
238
|
export const DateRange = createComponent('DateRange', {
|
|
237
|
-
onChange: 'change',
|
|
238
239
|
onBlur: 'blur',
|
|
240
|
+
onChange: 'change',
|
|
239
241
|
});
|
|
240
242
|
/**
|
|
241
243
|
* A form input for selecting one or more days of the week (Sunday through Saturday). Use for recurring schedules, availability preferences, or any scenario requiring day-of-week choices.
|
|
@@ -255,10 +257,10 @@ export const Divider = createComponent('Divider');
|
|
|
255
257
|
* A reorderable drag-and-drop list for dynamically rearranging items. Supports vertical and horizontal layouts; use when item order flexibility is crucial to the user experience.
|
|
256
258
|
*/
|
|
257
259
|
export const DraggableList = createComponent('DraggableList', {
|
|
258
|
-
onUpdate: 'update',
|
|
259
|
-
onRemove: 'remove',
|
|
260
|
-
onDragStart: 'dragStart',
|
|
261
260
|
onDragEnd: 'dragEnd',
|
|
261
|
+
onDragStart: 'dragStart',
|
|
262
|
+
onRemove: 'remove',
|
|
263
|
+
onUpdate: 'update',
|
|
262
264
|
});
|
|
263
265
|
/**
|
|
264
266
|
* A sliding panel that appears from the edge of the screen, allowing users to access additional information or complete secondary tasks like forms without losing context of their primary workflow. Use instead of Modal when preserving the user's place on the page is important.
|
|
@@ -276,15 +278,15 @@ export const Dropdown = createComponent('Dropdown', {
|
|
|
276
278
|
* A form input field for collecting email addresses with built-in format validation. Use for registration, login, subscriptions, and any context requiring a valid email. Do not use for non-email text like phone numbers or usernames — use Text instead.
|
|
277
279
|
*/
|
|
278
280
|
export const Email = createComponent('Email', {
|
|
279
|
-
onChange: 'change',
|
|
280
281
|
onBlur: 'blur',
|
|
281
|
-
|
|
282
|
+
onChange: 'change',
|
|
282
283
|
onClick: 'click',
|
|
284
|
+
onFocus: 'focus',
|
|
283
285
|
onKeydown: 'keydown',
|
|
284
286
|
onKeyup: 'keyup',
|
|
285
|
-
onPaste: 'paste',
|
|
286
287
|
onMouseenter: 'mouseenter',
|
|
287
288
|
onMouseleave: 'mouseleave',
|
|
289
|
+
onPaste: 'paste',
|
|
288
290
|
});
|
|
289
291
|
/**
|
|
290
292
|
* A collapsible panel that expands or contracts to reveal additional detailed information. Use to organize related content within limited space, such as FAQs, settings menus, or side panels. Prefer a full scrolling page when users need to read all content.
|
|
@@ -309,25 +311,25 @@ export const File = createComponent('File', {
|
|
|
309
311
|
* A file upload input that allows users to drag and drop files into a drop zone or click to browse. Supports single or multiple file uploads with configurable file type restrictions, size limits, and optional image cropping.
|
|
310
312
|
*/
|
|
311
313
|
export const FileDrop = createComponent('FileDrop', {
|
|
312
|
-
onChange: 'change',
|
|
313
314
|
onBlur: 'blur',
|
|
315
|
+
onChange: 'change',
|
|
314
316
|
});
|
|
315
317
|
/**
|
|
316
318
|
* A floating action button (FAB) that highlights the primary action on a screen, staying visible above other content. Uses an icon only (no text label) and typically appears once per screen for key tasks like creating, favoriting, or sharing.
|
|
317
319
|
*/
|
|
318
320
|
export const FloatingButton = createComponent('FloatingButton', {
|
|
319
|
-
onPress: 'press',
|
|
320
|
-
onPressWhileDisabled: 'pressWhileDisabled',
|
|
321
321
|
onMouseEnter: 'mouseEnter',
|
|
322
322
|
onMouseLeave: 'mouseLeave',
|
|
323
|
+
onPress: 'press',
|
|
324
|
+
onPressWhileDisabled: 'pressWhileDisabled',
|
|
323
325
|
});
|
|
324
326
|
/**
|
|
325
327
|
* Data grid for displaying tabular data. Each column defines a header, data key path, and cell type. Use $bindState on selectedRow to capture clicked row data. Data is an array of row objects with _key as unique identifier.
|
|
326
328
|
*/
|
|
327
329
|
export const Grid = createComponent('Grid', {
|
|
328
|
-
onRowClick: 'rowClick',
|
|
329
|
-
onRowAction: 'rowAction',
|
|
330
330
|
onHeaderAction: 'headerAction',
|
|
331
|
+
onRowAction: 'rowAction',
|
|
332
|
+
onRowClick: 'rowClick',
|
|
331
333
|
});
|
|
332
334
|
/**
|
|
333
335
|
* Horizontal stack layout that arranges children side-by-side in a row with token-based spacing. Use for placing elements next to each other horizontally — e.g. side-by-side form fields, button groups, or inline icon-and-text pairs. Prefer VStack for vertical stacking and Box for complex layouts needing custom dimensions, borders, or backgrounds.
|
|
@@ -345,18 +347,18 @@ export const Icon = createComponent('Icon', { onPress: 'press' });
|
|
|
345
347
|
* An icon-only button for repeated, common, or persistent actions when screen real estate is limited. Use for well-known actions like search, refresh, edit, or navigation — use a regular Button with text when the action is critical or requires more context.
|
|
346
348
|
*/
|
|
347
349
|
export const IconButton = createComponent('IconButton', {
|
|
348
|
-
onPress: 'press',
|
|
349
|
-
onPressWhileDisabled: 'pressWhileDisabled',
|
|
350
350
|
onMouseEnter: 'mouseEnter',
|
|
351
351
|
onMouseLeave: 'mouseLeave',
|
|
352
|
+
onPress: 'press',
|
|
353
|
+
onPressWhileDisabled: 'pressWhileDisabled',
|
|
352
354
|
});
|
|
353
355
|
/**
|
|
354
356
|
* Displays an image with optional theme-aware light/dark sources, lazy loading, and click interaction. Use for static or decorative images — use Avatar for user profile pictures, Icon for symbolic glyphs, or ImageViewer for zoomable image galleries.
|
|
355
357
|
*/
|
|
356
358
|
export const Image = createComponent('Image', {
|
|
357
|
-
onPress: 'press',
|
|
358
|
-
onLoad: 'load',
|
|
359
359
|
onError: 'error',
|
|
360
|
+
onLoad: 'load',
|
|
361
|
+
onPress: 'press',
|
|
360
362
|
});
|
|
361
363
|
/**
|
|
362
364
|
* Displays an image thumbnail that expands into a full-size overlay with zoom when clicked. Use for previewing images such as uploaded documents, photos, or screenshots where users need to inspect detail.
|
|
@@ -409,17 +411,17 @@ export const LoaderCard = createComponent('LoaderCard');
|
|
|
409
411
|
* A specialized card for displaying a physical location with its nickname and formatted address. Supports edit/delete actions, custom dropdown actions, and navigation links to location details.
|
|
410
412
|
*/
|
|
411
413
|
export const LocationCard = createComponent('LocationCard', {
|
|
412
|
-
onEdit: 'edit',
|
|
413
|
-
onDelete: 'delete',
|
|
414
|
-
onClick: 'click',
|
|
415
414
|
onAction: 'action',
|
|
415
|
+
onClick: 'click',
|
|
416
|
+
onDelete: 'delete',
|
|
417
|
+
onEdit: 'edit',
|
|
416
418
|
});
|
|
417
419
|
/**
|
|
418
420
|
* A text input that enforces a specific format pattern using mask characters (e.g. phone numbers, SSNs, postal codes). Use when the input value must conform to a known fixed-length pattern with digit, letter, or mixed character slots.
|
|
419
421
|
*/
|
|
420
422
|
export const Masker = createComponent('Masker', {
|
|
421
|
-
onChange: 'change',
|
|
422
423
|
onBlur: 'blur',
|
|
424
|
+
onChange: 'change',
|
|
423
425
|
});
|
|
424
426
|
/**
|
|
425
427
|
* A dropdown menu list that displays selectable actions or options. Use for context menus, action menus, or option pickers where items need to be selected from a list. Items can use WARNING type for cautionary actions or ALERT type for destructive actions like delete.
|
|
@@ -443,18 +445,22 @@ export const ModalFooter = createComponent('ModalFooter');
|
|
|
443
445
|
* A hierarchical nested list for displaying complex data structures like categories and subcategories, supporting up to four levels of expandable/collapsible nesting. Use for organizing large amounts of nested information such as organizational structures or department lists.
|
|
444
446
|
*/
|
|
445
447
|
export const NestedList = createComponent('NestedList', {
|
|
446
|
-
onToggle: 'toggle',
|
|
447
448
|
onSelect: 'select',
|
|
449
|
+
onToggle: 'toggle',
|
|
448
450
|
});
|
|
449
451
|
/**
|
|
450
452
|
* A general-purpose numeric input for entering whole or decimal numbers. Supports min/max range constraints, step increments, locale-aware formatting, and inline arithmetic evaluation. Use for quantities, counts, measurements, or any plain number entry — use Currency for monetary amounts, Percentage for percent values, or Slider/RangeSlider for visual range selection.
|
|
451
453
|
*/
|
|
452
454
|
export const Number = createComponent('Number', {
|
|
453
|
-
onChange: 'change',
|
|
454
455
|
onBlur: 'blur',
|
|
455
|
-
|
|
456
|
+
onChange: 'change',
|
|
456
457
|
onChangeCalculationState: 'changeCalculationState',
|
|
458
|
+
onChangeRaw: 'changeRaw',
|
|
457
459
|
});
|
|
460
|
+
/**
|
|
461
|
+
* Full-featured object list page with list view management. Supports multiple list views, view switching, inline editing, bulk actions, and record management. Use objectApiName to specify the object. Optionally set defaultListViewId to pre-select a specific list view.
|
|
462
|
+
*/
|
|
463
|
+
export const ObjectListView = createComponent('ObjectListView');
|
|
458
464
|
/**
|
|
459
465
|
* A modular component that presents a high-level overview of an entity (person, organization, device) with an avatar, title, and caption. Typically placed at the top of a detail page below navigation. Use Cards for detailed entity info, Lists for comparing multiple items, or Tables for large sortable datasets.
|
|
460
466
|
*/
|
|
@@ -513,38 +519,38 @@ export const Pane = createComponent('Pane', {
|
|
|
513
519
|
* A secure input field for entering or creating passwords, with automatic character masking and an optional visibility toggle. Use in login, signup, or verification flows.
|
|
514
520
|
*/
|
|
515
521
|
export const Password = createComponent('Password', {
|
|
516
|
-
onChange: 'change',
|
|
517
522
|
onBlur: 'blur',
|
|
518
|
-
|
|
523
|
+
onChange: 'change',
|
|
519
524
|
onClick: 'click',
|
|
525
|
+
onFocus: 'focus',
|
|
520
526
|
onKeydown: 'keydown',
|
|
521
527
|
onKeyup: 'keyup',
|
|
522
|
-
onPaste: 'paste',
|
|
523
528
|
onMouseenter: 'mouseenter',
|
|
524
529
|
onMouseleave: 'mouseleave',
|
|
530
|
+
onPaste: 'paste',
|
|
525
531
|
onReveal: 'reveal',
|
|
526
532
|
});
|
|
527
533
|
/**
|
|
528
534
|
* A numeric input for entering and editing percentage values. Automatically appends a % suffix, supports decimal precision, negative values, and upper/lower bounds. Use for financial calculations, progress indicators, or statistical entries requiring percentage values.
|
|
529
535
|
*/
|
|
530
536
|
export const Percentage = createComponent('Percentage', {
|
|
531
|
-
onChange: 'change',
|
|
532
537
|
onBlur: 'blur',
|
|
538
|
+
onChange: 'change',
|
|
533
539
|
});
|
|
534
540
|
/**
|
|
535
541
|
* A specialized input for entering and editing phone numbers with automatic region-based formatting, international support, and an optional country code dropdown selector.
|
|
536
542
|
*/
|
|
537
543
|
export const Phone = createComponent('Phone', {
|
|
538
|
-
onChange: 'change',
|
|
539
544
|
onBlur: 'blur',
|
|
540
|
-
|
|
545
|
+
onChange: 'change',
|
|
541
546
|
onClick: 'click',
|
|
547
|
+
onCountryCodeChange: 'countryCodeChange',
|
|
548
|
+
onFocus: 'focus',
|
|
542
549
|
onKeydown: 'keydown',
|
|
543
550
|
onKeyup: 'keyup',
|
|
544
|
-
onPaste: 'paste',
|
|
545
551
|
onMouseenter: 'mouseenter',
|
|
546
552
|
onMouseleave: 'mouseleave',
|
|
547
|
-
|
|
553
|
+
onPaste: 'paste',
|
|
548
554
|
});
|
|
549
555
|
/**
|
|
550
556
|
* Communicates the status of an ongoing process, like downloading or uploading files, to inform the user of the remaining wait time. Use determinate mode when progress percentage is known, or indeterminate when wait time cannot be calculated. For multi-step processes requiring user action, use ProgressSteps instead; for a simple busy indicator, use Spinner.
|
|
@@ -558,8 +564,8 @@ export const ProgressSteps = createComponent('ProgressSteps');
|
|
|
558
564
|
* Radio buttons let users choose a single option from two or more mutually exclusive options. Prefer over Select when showing 5 or fewer options that need to be immediately visible. Use Checkbox instead when multiple selections are allowed.
|
|
559
565
|
*/
|
|
560
566
|
export const Radio = createComponent('Radio', {
|
|
561
|
-
onChange: 'change',
|
|
562
567
|
onBlur: 'blur',
|
|
568
|
+
onChange: 'change',
|
|
563
569
|
onMouseenter: 'mouseenter',
|
|
564
570
|
onMouseleave: 'mouseleave',
|
|
565
571
|
});
|
|
@@ -567,10 +573,10 @@ export const Radio = createComponent('Radio', {
|
|
|
567
573
|
* A two-handle slider for selecting a numeric range within a track. Use for defining min/max boundaries such as price filters or value ranges.
|
|
568
574
|
*/
|
|
569
575
|
export const RangeSlider = createComponent('RangeSlider', {
|
|
570
|
-
onChange: 'change',
|
|
571
|
-
onBeforeChange: 'beforeChange',
|
|
572
576
|
onAfterChange: 'afterChange',
|
|
577
|
+
onBeforeChange: 'beforeChange',
|
|
573
578
|
onBlur: 'blur',
|
|
579
|
+
onChange: 'change',
|
|
574
580
|
});
|
|
575
581
|
/**
|
|
576
582
|
* A skeleton placeholder shown while tabular report content is loading. Use when the content area will contain a data report with header and detail rows, and you want to reduce perceived loading time and prevent layout shift.
|
|
@@ -584,6 +590,17 @@ export const ReportShareLoader = createComponent('ReportShareLoader');
|
|
|
584
590
|
* A skeleton placeholder shown while report viewer content is loading. Use when the content area will contain a report viewer with sidebar navigation and a main report content area, and you want to reduce perceived loading time and prevent layout shift.
|
|
585
591
|
*/
|
|
586
592
|
export const ReportViewerLoader = createComponent('ReportViewerLoader');
|
|
593
|
+
/**
|
|
594
|
+
* A responsive 12-column grid for dashboard widgets that supports drag-to-rearrange and resize-from-any-corner. Use for user-curated dashboards where end-users decide which tiles appear where and how large they are. Each direct child element's spec id must match a `layouts[].identifier`; that layout entry controls the child's size and per-block styling.
|
|
595
|
+
*/
|
|
596
|
+
export const ResizableBoard = createComponent('ResizableBoard', {
|
|
597
|
+
onBreakpointChange: 'breakpointChange',
|
|
598
|
+
onDragStart: 'dragStart',
|
|
599
|
+
onDragStop: 'dragStop',
|
|
600
|
+
onLayoutChange: 'layoutChange',
|
|
601
|
+
onResizeStart: 'resizeStart',
|
|
602
|
+
onResizeStop: 'resizeStop',
|
|
603
|
+
});
|
|
587
604
|
/**
|
|
588
605
|
* Conditionally show or hide content based on container or viewport width breakpoints, enabling responsive layouts that adapt to different screen and panel sizes. Use to hide non-essential UI at narrow widths or show alternative layouts at wider breakpoints.
|
|
589
606
|
*/
|
|
@@ -592,18 +609,18 @@ export const Responsive = createComponent('Responsive');
|
|
|
592
609
|
* A linear set of buttons for toggling between closely related choices (2-5 short-label options) and instantly applying a selection. Supports single, multi, and range selection modes. NOT suitable for binary (2-option) choices — use Toggle or ToggleButton instead. Prefer over Radio when options are short labels needing a compact inline layout; use Radio for longer phrases, Tabs for content navigation.
|
|
593
610
|
*/
|
|
594
611
|
export const SegmentedControl = createComponent('SegmentedControl', {
|
|
595
|
-
onChange: 'change',
|
|
596
612
|
onBlur: 'blur',
|
|
613
|
+
onChange: 'change',
|
|
597
614
|
});
|
|
598
615
|
/**
|
|
599
616
|
* A dropdown input that lets users choose one or more options from a predefined list. Use for long lists, searchable lists, or constrained spaces. Use Radio or Checkbox cards instead when there are few options and the selection is a key part of the flow.
|
|
600
617
|
*/
|
|
601
618
|
export const Select = createComponent('Select', {
|
|
602
|
-
onChange: 'change',
|
|
603
619
|
onBlur: 'blur',
|
|
620
|
+
onChange: 'change',
|
|
604
621
|
onFocus: 'focus',
|
|
605
|
-
onPaste: 'paste',
|
|
606
622
|
onMenuToggle: 'menuToggle',
|
|
623
|
+
onPaste: 'paste',
|
|
607
624
|
});
|
|
608
625
|
/**
|
|
609
626
|
* A card-based selection input that renders a group of selectable cards for single or multi-choice picking. Use when users need to choose from a small set of visually rich options displayed as cards (e.g. plans, locations, tiers). Use Radio for simple text-only single choice, or Select for long option lists in a dropdown.
|
|
@@ -633,8 +650,8 @@ export const Signature = createComponent('Signature', {
|
|
|
633
650
|
* A specialized masked input for entering Canadian Social Insurance Numbers (SIN). Automatically formats the 9-digit value as "XXX XXX XXX" while storing the unmasked digits. Use for Canadian employee or tax forms requiring a SIN — use Ssn for US Social Security Numbers, or Masker for other custom-format masked inputs.
|
|
634
651
|
*/
|
|
635
652
|
export const Sin = createComponent('Sin', {
|
|
636
|
-
onChange: 'change',
|
|
637
653
|
onBlur: 'blur',
|
|
654
|
+
onChange: 'change',
|
|
638
655
|
});
|
|
639
656
|
/**
|
|
640
657
|
* An animated placeholder that mimics the shape of content while it loads, available in text (lines), circle, and box variants.
|
|
@@ -644,10 +661,10 @@ export const Skeleton = createComponent('Skeleton');
|
|
|
644
661
|
* An interactive control for selecting a single numeric value within a defined range by dragging a handle along a horizontal track. Use for numeric ranges like 0–100; do not use for extremely large ranges (e.g. 1–1000) or non-numeric values.
|
|
645
662
|
*/
|
|
646
663
|
export const Slider = createComponent('Slider', {
|
|
647
|
-
onChange: 'change',
|
|
648
|
-
onBlur: 'blur',
|
|
649
|
-
onBeforeChange: 'beforeChange',
|
|
650
664
|
onAfterChange: 'afterChange',
|
|
665
|
+
onBeforeChange: 'beforeChange',
|
|
666
|
+
onBlur: 'blur',
|
|
667
|
+
onChange: 'change',
|
|
651
668
|
});
|
|
652
669
|
/**
|
|
653
670
|
* A passive notification that appears at the bottom of the screen to provide quick, at-a-glance feedback on the outcome of an action. Use for non-critical, supplementary messages that do not require user action — for critical messages requiring acknowledgment, use a Modal instead.
|
|
@@ -663,8 +680,8 @@ export const Spinner = createComponent('Spinner');
|
|
|
663
680
|
* A compound button that combines a primary action with a secondary trailing button, typically opening a dropdown of alternative actions. Use when the user has a main action with related alternatives (e.g. "Save" with "Save as draft", "Save and publish").
|
|
664
681
|
*/
|
|
665
682
|
export const SplitButton = createComponent('SplitButton', {
|
|
666
|
-
onPress: 'press',
|
|
667
683
|
onDropdownChange: 'dropdownChange',
|
|
684
|
+
onPress: 'press',
|
|
668
685
|
});
|
|
669
686
|
/**
|
|
670
687
|
* A multi-pane layout container that arranges child Pane components side-by-side with support for resizing, collapsing, and responsive behavior. Use for master-detail views, sidebars, and split-screen interfaces where panels need independent sizing and collapse control.
|
|
@@ -674,8 +691,8 @@ export const SplitPane = createComponent('SplitPane');
|
|
|
674
691
|
* A specialized masked input for collecting US Social Security Numbers (SSN). Automatically formats display as XXX-XX-XXXX while storing the raw 9-digit value. Use for any form field that requires an SSN; use Text for general text or Password for secret credentials.
|
|
675
692
|
*/
|
|
676
693
|
export const Ssn = createComponent('Ssn', {
|
|
677
|
-
onChange: 'change',
|
|
678
694
|
onBlur: 'blur',
|
|
695
|
+
onChange: 'change',
|
|
679
696
|
});
|
|
680
697
|
/**
|
|
681
698
|
* A static indicator of real-time state or condition, such as availability, progress, or publication status. Displays a colored dot alongside a text label. Use Label instead for categorizing or organizing items with keywords.
|
|
@@ -697,8 +714,8 @@ export const Survey = createComponent('Survey', {
|
|
|
697
714
|
* A toggle that lets users switch instantly between on and off states. Use for activation settings that take effect immediately; use Checkbox instead for selection or agreement scenarios that require submission.
|
|
698
715
|
*/
|
|
699
716
|
export const Switch = createComponent('Switch', {
|
|
700
|
-
onChange: 'change',
|
|
701
717
|
onBlur: 'blur',
|
|
718
|
+
onChange: 'change',
|
|
702
719
|
});
|
|
703
720
|
/**
|
|
704
721
|
* Labeled controls for alternating between related views within the same page or context. Use to organize groups of related content at the same hierarchy level; for selection within a single view, use a segmented control instead.
|
|
@@ -716,10 +733,10 @@ export const Text = createComponent('Text');
|
|
|
716
733
|
* An autocomplete input that offers text suggestions in a dropdown menu as the user types. Unlike Select, users can either manually type free-form text or pick from the suggestions list.
|
|
717
734
|
*/
|
|
718
735
|
export const TextAutoSuggest = createComponent('TextAutoSuggest', {
|
|
719
|
-
onChange: 'change',
|
|
720
736
|
onBlur: 'blur',
|
|
721
|
-
|
|
737
|
+
onChange: 'change',
|
|
722
738
|
onClick: 'click',
|
|
739
|
+
onFocus: 'focus',
|
|
723
740
|
});
|
|
724
741
|
/**
|
|
725
742
|
* Displays extensive text or content in a compact area by clipping it at a specified height, with an expand/collapse toggle for full viewing. Use when space is limited but more information is available. Use ExpansionPanel instead for multiple collapsible sections, or Tooltip for brief hover-only content.
|
|
@@ -729,15 +746,15 @@ export const TextClip = createComponent('TextClip');
|
|
|
729
746
|
* A single-line text input for collecting short-form text data such as names, emails, URLs, or search queries. Use TextArea for multi-line content or Number for numeric-only values.
|
|
730
747
|
*/
|
|
731
748
|
export const TextInput = createComponent('TextInput', {
|
|
732
|
-
onChange: 'change',
|
|
733
749
|
onBlur: 'blur',
|
|
734
|
-
|
|
750
|
+
onChange: 'change',
|
|
735
751
|
onClick: 'click',
|
|
752
|
+
onFocus: 'focus',
|
|
736
753
|
onKeydown: 'keydown',
|
|
737
754
|
onKeyup: 'keyup',
|
|
738
|
-
onPaste: 'paste',
|
|
739
755
|
onMouseenter: 'mouseenter',
|
|
740
756
|
onMouseleave: 'mouseleave',
|
|
757
|
+
onPaste: 'paste',
|
|
741
758
|
});
|
|
742
759
|
/**
|
|
743
760
|
* A read-only text block with a one-click action to copy its content to the clipboard or download it as a file. Use for command-line instructions, code snippets, API keys, or any text the user needs to grab verbatim.
|
|
@@ -747,30 +764,30 @@ export const TextSnippet = createComponent('TextSnippet');
|
|
|
747
764
|
* A multi-line text input for entering longer free-form text such as comments, descriptions, or paragraphs. Use TextInput instead for short single-line entries.
|
|
748
765
|
*/
|
|
749
766
|
export const Textarea = createComponent('Textarea', {
|
|
750
|
-
onChange: 'change',
|
|
751
767
|
onBlur: 'blur',
|
|
768
|
+
onChange: 'change',
|
|
752
769
|
onFocus: 'focus',
|
|
753
770
|
});
|
|
754
771
|
/**
|
|
755
772
|
* A form input for entering or selecting a specific time of day. Supports typed entry, optional dropdown time selection, timezone display, and locale-aware formatting.
|
|
756
773
|
*/
|
|
757
774
|
export const Time = createComponent('Time', {
|
|
758
|
-
onChange: 'change',
|
|
759
775
|
onBlur: 'blur',
|
|
776
|
+
onChange: 'change',
|
|
760
777
|
});
|
|
761
778
|
/**
|
|
762
779
|
* A time range input for selecting a start and end time pair, such as work schedules, shifts, or availability windows. Stores a [startTime, endTime] tuple of ISO 8601 strings. Supports timezone display and next-day span detection.
|
|
763
780
|
*/
|
|
764
781
|
export const TimeRange = createComponent('TimeRange', {
|
|
765
|
-
onChange: 'change',
|
|
766
782
|
onBlur: 'blur',
|
|
783
|
+
onChange: 'change',
|
|
767
784
|
});
|
|
768
785
|
/**
|
|
769
786
|
* A specialized select component for choosing a timezone. Lists all IANA timezones with search filtering. Use this when the user needs to pick a standalone timezone; use Time with timezone instead when selecting a time together with a timezone.
|
|
770
787
|
*/
|
|
771
788
|
export const Timezone = createComponent('Timezone', {
|
|
772
|
-
onChange: 'change',
|
|
773
789
|
onBlur: 'blur',
|
|
790
|
+
onChange: 'change',
|
|
774
791
|
onFocus: 'focus',
|
|
775
792
|
});
|
|
776
793
|
/**
|
|
@@ -810,116 +827,14 @@ export const Video = createComponent('Video');
|
|
|
810
827
|
* A specialized email input for entering work email addresses, featuring a domain suffix dropdown selector so users type only the username while choosing from a predefined list of company domains
|
|
811
828
|
*/
|
|
812
829
|
export const WorkEmail = createComponent('WorkEmail', {
|
|
813
|
-
onChange: 'change',
|
|
814
830
|
onBlur: 'blur',
|
|
815
|
-
|
|
831
|
+
onChange: 'change',
|
|
816
832
|
onClick: 'click',
|
|
833
|
+
onFocus: 'focus',
|
|
817
834
|
onKeydown: 'keydown',
|
|
818
835
|
onKeyup: 'keyup',
|
|
819
|
-
onPaste: 'paste',
|
|
820
836
|
onMouseenter: 'mouseenter',
|
|
821
837
|
onMouseleave: 'mouseleave',
|
|
838
|
+
onPaste: 'paste',
|
|
822
839
|
});
|
|
823
|
-
/**
|
|
824
|
-
* Dashboard tile chrome with a fixed header (start: heading + sub-heading; end: optional configure button) and a children body. The header renders immediately when the spec lands so the chrome is visible while the body subtree resolves its run_query data through a WithSpinner. Use this instead of the legacy Card for every dashboard tile (KPI, visual chart, grid).
|
|
825
|
-
*/
|
|
826
|
-
export const AnalyticsCard = createComponent('AnalyticsCard', {
|
|
827
|
-
onConfigure: 'configure',
|
|
828
|
-
});
|
|
829
|
-
/**
|
|
830
|
-
* Resizable dashboard board for AI widget layouts. Wraps each child in a Pebble ResizableBoard block.
|
|
831
|
-
*/
|
|
832
|
-
export const ResizableBoard = createComponent('ResizableBoard');
|
|
833
|
-
/**
|
|
834
|
-
* Raw ECharts renderer for SDUI. Provide a JSON-safe ECharts option object. It fills its parent card by default and keeps a usable minimum height when no fixed parent height exists; optional height/width can override sizing.
|
|
835
|
-
*/
|
|
836
|
-
export const EChart = createComponent('EChart', {
|
|
837
|
-
onClick: 'click',
|
|
838
|
-
onLegendChange: 'legendChange',
|
|
839
|
-
onDataZoomChange: 'dataZoomChange',
|
|
840
|
-
});
|
|
841
|
-
/**
|
|
842
|
-
* Read-only HTML content rendered with the shared RichTextEditor (non-editable). Generic SDUI building block for narrative or explanatory copy in any product layout.
|
|
843
|
-
*/
|
|
844
|
-
export const RichText = createComponent('RichText');
|
|
845
|
-
/**
|
|
846
|
-
* Deprecated alias for RichText. Same props; prefer type `RichText` in new specs.
|
|
847
|
-
*/
|
|
848
|
-
export const DashboardRichText = createComponent('DashboardRichText');
|
|
849
|
-
/**
|
|
850
|
-
* Auto-fetching grid for Rippling Custom Objects. Provide objectApiName and fieldApiNames to display records with auto-generated columns, pagination, sorting, and field-type formatting. Increment refreshKey to force a data refresh after mutations.
|
|
851
|
-
*/
|
|
852
|
-
export const CustomObjectGrid = createComponent('CustomObjectGrid');
|
|
853
|
-
/**
|
|
854
|
-
* Full-featured object list page with list view management. Supports multiple list views, view switching, inline editing, bulk actions, and record management. Use objectApiName to specify the object. Optionally set defaultListViewId to pre-select a specific list view.
|
|
855
|
-
*/
|
|
856
|
-
export const ObjectListView = createComponent('ObjectListView');
|
|
857
|
-
/**
|
|
858
|
-
* Vertical bar chart powered by ECharts. Provide series (name + data array) and optional categories for the x-axis. Use showStackedPercent for 100%-stacked bars, showBarLabel to render values on bars, and showLegend to display a series legend. Use $bindState on selected to capture the clicked bar.
|
|
859
|
-
*/
|
|
860
|
-
export const BarChart = createComponent('BarChart', {
|
|
861
|
-
onBarClick: 'barClick',
|
|
862
|
-
});
|
|
863
|
-
/**
|
|
864
|
-
* Line chart powered by ECharts. Provide series (name + data array) and optional categories for the x-axis. Use connectNulls to bridge null gaps, showAreaPercent for 100%-stacked area, and showLegend to display a series legend.
|
|
865
|
-
*/
|
|
866
|
-
export const LineChart = createComponent('LineChart');
|
|
867
|
-
/**
|
|
868
|
-
* Horizontal bar chart powered by ECharts. Same data shape as BarChart but renders bars horizontally. Categories appear on the y-axis and values on the x-axis.
|
|
869
|
-
*/
|
|
870
|
-
export const HorizontalBarChart = createComponent('HorizontalBarChart');
|
|
871
|
-
/**
|
|
872
|
-
* Combination chart with bars and lines on dual Y-axes. Bars use the left Y-axis by default; lines can use the right Y-axis via yAxisIndex: 1.
|
|
873
|
-
*/
|
|
874
|
-
export const CombinationChart = createComponent('CombinationChart');
|
|
875
|
-
/**
|
|
876
|
-
* Pie / donut chart. Each series entry has a data array of {name, value} pairs. Use radius: ["50%", "70%"] for a donut hole.
|
|
877
|
-
*/
|
|
878
|
-
export const PieChart = createComponent('PieChart');
|
|
879
|
-
/**
|
|
880
|
-
* Scatter plot. Each series contains [x, y] data pairs plotted as individual points.
|
|
881
|
-
*/
|
|
882
|
-
export const ScatterChart = createComponent('ScatterChart');
|
|
883
|
-
/**
|
|
884
|
-
* Funnel chart for conversion or stage-based data. Data items are ordered by value (largest at top).
|
|
885
|
-
*/
|
|
886
|
-
export const FunnelChart = createComponent('FunnelChart');
|
|
887
|
-
/**
|
|
888
|
-
* Gauge (speedometer) chart. Displays a single numeric value against colored segments. Segments define the scale breakpoints and their colors.
|
|
889
|
-
*/
|
|
890
|
-
export const GaugeChart = createComponent('GaugeChart');
|
|
891
|
-
/**
|
|
892
|
-
* Sunburst (multi-level pie) chart for hierarchical data. Each node has a name, optional value, and optional children array.
|
|
893
|
-
*/
|
|
894
|
-
export const SunburstChart = createComponent('SunburstChart');
|
|
895
|
-
/**
|
|
896
|
-
* Wrapper that shows a spinner while loading. Emits `load` once on mount so a handler can start fetching data. Renders children only when `isLoading` is false.
|
|
897
|
-
*/
|
|
898
|
-
export const WithSpinner = createComponent('WithSpinner', {
|
|
899
|
-
onLoad: 'load',
|
|
900
|
-
});
|
|
901
|
-
/**
|
|
902
|
-
* Radar (spider) chart for comparing multiple variables across categories. Each indicator defines a spoke axis. Provide radarIndicators (axis definitions) and radarOptions (series data).
|
|
903
|
-
*/
|
|
904
|
-
export const RadarChart = createComponent('RadarChart');
|
|
905
|
-
/**
|
|
906
|
-
* Radar chart with filled area between data points and the center. Same data shape as RadarChart but renders with semi-transparent area fill for each series.
|
|
907
|
-
*/
|
|
908
|
-
export const RadarFilledChart = createComponent('RadarFilledChart');
|
|
909
|
-
/**
|
|
910
|
-
* Calendar heatmap chart that renders data points on a calendar grid. Each cell represents a day, colored by value intensity. Provide heatmapOptions with [date, value] data and calendarOptions with a date range.
|
|
911
|
-
*/
|
|
912
|
-
export const HeatmapCalendarChart = createComponent('HeatmapCalendarChart');
|
|
913
|
-
/**
|
|
914
|
-
* Grid-based heatmap chart for showing magnitude across two dimensions. Data format: [[xIndex, yIndex, value], …]. Provide category labels for both axes.
|
|
915
|
-
*/
|
|
916
|
-
export const HeatmapChart = createComponent('HeatmapChart');
|
|
917
|
-
/**
|
|
918
|
-
* Treemap chart for visualizing hierarchical data as nested rectangles. Each node has a name and either a numeric value (leaf) or children (branch). Rectangle size represents the value.
|
|
919
|
-
*/
|
|
920
|
-
export const TreemapChart = createComponent('TreemapChart');
|
|
921
|
-
/**
|
|
922
|
-
* Read-only SQL syntax highlighter powered by Monaco Editor. Renders a formatted, non-editable SQL block with auto-height based on line count and a max height cap.
|
|
923
|
-
*/
|
|
924
|
-
export const SqlHighlight = createComponent('SqlHighlight');
|
|
925
840
|
//# sourceMappingURL=components.mjs.map
|