@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.
Files changed (57) hide show
  1. package/lib/manifest/custom-object-page-layout.d.mts +148 -34
  2. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  3. package/lib/manifest/custom-object-page-layout.d.ts +148 -34
  4. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  5. package/lib/manifest/custom-object-page-layout.js +61 -18
  6. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  7. package/lib/manifest/custom-object-page-layout.mjs +61 -18
  8. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  9. package/lib/manifest/custom-object.d.mts +1 -1
  10. package/lib/manifest/custom-object.d.ts +1 -1
  11. package/lib/manifest/custom-object.js +1 -1
  12. package/lib/manifest/custom-object.mjs +1 -1
  13. package/lib/manifest/field.d.mts +3 -3
  14. package/lib/manifest/field.d.ts +3 -3
  15. package/lib/manifest/field.js +2 -2
  16. package/lib/manifest/field.mjs +2 -2
  17. package/lib/manifest/index.d.mts +1 -1
  18. package/lib/manifest/index.d.mts.map +1 -1
  19. package/lib/manifest/index.d.ts +1 -1
  20. package/lib/manifest/index.d.ts.map +1 -1
  21. package/lib/manifest/index.js.map +1 -1
  22. package/lib/manifest/index.mjs.map +1 -1
  23. package/lib/sdui/components.d.mts +100 -211
  24. package/lib/sdui/components.d.mts.map +1 -1
  25. package/lib/sdui/components.d.ts +100 -211
  26. package/lib/sdui/components.d.ts.map +1 -1
  27. package/lib/sdui/components.js +96 -182
  28. package/lib/sdui/components.js.map +1 -1
  29. package/lib/sdui/components.mjs +93 -178
  30. package/lib/sdui/components.mjs.map +1 -1
  31. package/lib/sdui/index.d.mts +12 -52
  32. package/lib/sdui/index.d.mts.map +1 -1
  33. package/lib/sdui/index.d.ts +12 -52
  34. package/lib/sdui/index.d.ts.map +1 -1
  35. package/lib/sdui/index.js +10 -50
  36. package/lib/sdui/index.js.map +1 -1
  37. package/lib/sdui/index.mjs +5 -25
  38. package/lib/sdui/index.mjs.map +1 -1
  39. package/lib/sdui/propTypes.d.mts +3156 -3515
  40. package/lib/sdui/propTypes.d.mts.map +1 -1
  41. package/lib/sdui/propTypes.d.ts +3156 -3515
  42. package/lib/sdui/propTypes.d.ts.map +1 -1
  43. package/lib/sdui/propTypes.js +1 -1
  44. package/lib/sdui/propTypes.mjs +1 -1
  45. package/package.json +1 -1
  46. package/src/lib/manifest/custom-object-page-layout.ts +294 -79
  47. package/src/lib/manifest/custom-object.ts +1 -1
  48. package/src/lib/manifest/field.ts +3 -3
  49. package/src/lib/manifest/index.ts +27 -0
  50. package/src/lib/sdui/components.ts +181 -332
  51. package/src/lib/sdui/index.ts +13 -93
  52. package/src/lib/sdui/propTypes.ts +3509 -3892
  53. package/src/version.ts +1 -1
  54. package/version.d.mts +1 -1
  55. package/version.d.ts +1 -1
  56. package/version.js +1 -1
  57. package/version.mjs +1 -1
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  /**
3
3
  * AUTO-GENERATED from catalog-schema.json
4
- * Components: 154
4
+ * Components: 134
5
5
  *
6
6
  * Do not edit manually. Run: node tools/sdui/builder/build.js
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Heading = exports.HStack = exports.Grid = exports.FloatingButton = exports.FileDrop = exports.File = exports.Field = exports.ExpansionPanelGroup = exports.ExpansionPanel = exports.Email = exports.Dropdown = exports.Drawer = exports.DraggableList = exports.Divider = exports.DistributionBar = exports.DaySelector = exports.DateRange = exports.DateInlineMulti = exports.Date = exports.Currency = exports.Country = exports.CountDown = exports.ContentLoader = exports.ColorPicker = exports.Circle = exports.ChipGroup = exports.Chip = exports.CheckboxGroup = exports.Checkbox = exports.CheckList = exports.ChartLoader = exports.Carousel = exports.CardGroup = exports.Card = exports.ButtonGroup = exports.Button = exports.Breadcrumb = exports.Box = exports.Badge = exports.AvatarList = exports.Avatar = exports.AtomsSeparator = exports.AppNavBar = exports.AppGroupSelect = exports.AppGroupLoader = exports.ApiError = exports.Animation = exports.Alert = exports.AiIcon = exports.ActionCard = void 0;
10
- exports.Signature = exports.ShowMore = exports.SettingsLoader = exports.SelectableMenu = exports.SelectableGroup = exports.Select = exports.SegmentedControl = exports.Responsive = exports.ReportViewerLoader = exports.ReportShareLoader = exports.ReportLoader = exports.RangeSlider = exports.Radio = exports.ProgressSteps = exports.ProgressBar = exports.Phone = exports.Percentage = exports.Password = exports.Pane = exports.Paginate = exports.PageHeader = exports.PageFooter = exports.PageContent = exports.PageAppLogo = exports.ObjectUITemplate = exports.ObjectUIStats = exports.ObjectUIHeader = exports.ObjectUIContent = exports.ObjectUI = exports.Number = exports.NestedList = exports.ModalFooter = exports.ModalCloseButton = exports.Modal = exports.MenuList = exports.Masker = exports.LocationCard = exports.LoaderCard = exports.ListItem = exports.Link = exports.LayoutCard = exports.Layout = exports.LabelGroup = exports.Label = exports.ItemNavigator = exports.InputGroup = exports.ImageViewer = exports.Image = exports.IconButton = exports.Icon = void 0;
11
- exports.RadarFilledChart = exports.RadarChart = exports.WithSpinner = exports.SunburstChart = exports.GaugeChart = exports.FunnelChart = exports.ScatterChart = exports.PieChart = exports.CombinationChart = exports.HorizontalBarChart = exports.LineChart = exports.BarChart = exports.ObjectListView = exports.CustomObjectGrid = exports.DashboardRichText = exports.RichText = exports.EChart = exports.ResizableBoard = exports.AnalyticsCard = exports.WorkEmail = exports.Video = exports.VStack = exports.TreeSelect = exports.Tree = exports.ToggleableArrow = exports.TitleCaption = exports.Tip = exports.Timezone = exports.TimeRange = exports.Time = exports.Textarea = exports.TextSnippet = exports.TextInput = exports.TextClip = exports.TextAutoSuggest = exports.Text = exports.TableBasic = exports.Tab = exports.Switch = exports.Survey = exports.Stepper = exports.Status = exports.Ssn = exports.SplitPane = exports.SplitButton = exports.Spinner = exports.SnackBar = exports.Slider = exports.Skeleton = exports.Sin = void 0;
12
- exports.SqlHighlight = exports.TreemapChart = exports.HeatmapChart = exports.HeatmapCalendarChart = void 0;
9
+ exports.HStack = exports.Grid = exports.FloatingButton = exports.FileDrop = exports.File = exports.Field = exports.ExpansionPanelGroup = exports.ExpansionPanel = exports.Email = exports.Dropdown = exports.Drawer = exports.DraggableList = exports.Divider = exports.DistributionBar = exports.DaySelector = exports.DateRange = exports.DateInlineMulti = exports.Date = exports.CustomObjectGrid = exports.Currency = exports.Country = exports.CountDown = exports.ContentLoader = exports.ColorPicker = exports.Circle = exports.ChipGroup = exports.Chip = exports.CheckboxGroup = exports.Checkbox = exports.CheckList = exports.ChartLoader = exports.Carousel = exports.CardGroup = exports.Card = exports.ButtonGroup = exports.Button = exports.Breadcrumb = exports.Box = exports.Badge = exports.AvatarList = exports.Avatar = exports.AtomsSeparator = exports.AppNavBar = exports.AppGroupSelect = exports.AppGroupLoader = exports.ApiError = exports.Animation = exports.Alert = exports.AiIcon = exports.ActionCard = void 0;
10
+ exports.SelectableMenu = exports.SelectableGroup = exports.Select = exports.SegmentedControl = exports.Responsive = exports.ResizableBoard = exports.ReportViewerLoader = exports.ReportShareLoader = exports.ReportLoader = exports.RangeSlider = exports.Radio = exports.ProgressSteps = exports.ProgressBar = exports.Phone = exports.Percentage = exports.Password = exports.Pane = exports.Paginate = exports.PageHeader = exports.PageFooter = exports.PageContent = exports.PageAppLogo = exports.ObjectUITemplate = exports.ObjectUIStats = exports.ObjectUIHeader = exports.ObjectUIContent = exports.ObjectUI = exports.ObjectListView = exports.Number = exports.NestedList = exports.ModalFooter = exports.ModalCloseButton = exports.Modal = exports.MenuList = exports.Masker = exports.LocationCard = exports.LoaderCard = exports.ListItem = exports.Link = exports.LayoutCard = exports.Layout = exports.LabelGroup = exports.Label = exports.ItemNavigator = exports.InputGroup = exports.ImageViewer = exports.Image = exports.IconButton = exports.Icon = exports.Heading = void 0;
11
+ exports.WorkEmail = exports.Video = exports.VStack = exports.TreeSelect = exports.Tree = exports.ToggleableArrow = exports.TitleCaption = exports.Tip = exports.Timezone = exports.TimeRange = exports.Time = exports.Textarea = exports.TextSnippet = exports.TextInput = exports.TextClip = exports.TextAutoSuggest = exports.Text = exports.TableBasic = exports.Tab = exports.Switch = exports.Survey = exports.Stepper = exports.Status = exports.Ssn = exports.SplitPane = exports.SplitButton = exports.Spinner = exports.SnackBar = exports.Slider = exports.Skeleton = exports.Sin = exports.Signature = exports.ShowMore = exports.SettingsLoader = void 0;
13
12
  const hasOwn = Object.prototype.hasOwnProperty;
14
13
  function createComponent(type, eventMap = {}) {
15
14
  return (...args) => {
@@ -59,9 +58,9 @@ exports.AiIcon = createComponent('AiIcon');
59
58
  * 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).
60
59
  */
61
60
  exports.Alert = createComponent('Alert', {
61
+ onDismiss: 'dismiss',
62
62
  onPressPrimary: 'pressPrimary',
63
63
  onPressSecondary: 'pressSecondary',
64
- onDismiss: 'dismiss',
65
64
  });
66
65
  /**
67
66
  * 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.
@@ -79,18 +78,18 @@ exports.AppGroupLoader = createComponent('AppGroupLoader');
79
78
  * 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.
80
79
  */
81
80
  exports.AppGroupSelect = createComponent('AppGroupSelect', {
82
- onChange: 'change',
83
81
  onBlur: 'blur',
82
+ onChange: 'change',
84
83
  onFocus: 'focus',
85
- onPaste: 'paste',
86
84
  onMenuToggle: 'menuToggle',
85
+ onPaste: 'paste',
87
86
  });
88
87
  /**
89
88
  * 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.
90
89
  */
91
90
  exports.AppNavBar = createComponent('AppNavBar', {
92
- onNavigate: 'navigate',
93
91
  onAction: 'action',
92
+ onNavigate: 'navigate',
94
93
  });
95
94
  /**
96
95
  * 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.
@@ -124,10 +123,10 @@ exports.Breadcrumb = createComponent('Breadcrumb', {
124
123
  * 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.
125
124
  */
126
125
  exports.Button = createComponent('Button', {
127
- onPress: 'press',
128
- onPressWhileDisabled: 'pressWhileDisabled',
129
126
  onMouseEnter: 'mouseEnter',
130
127
  onMouseLeave: 'mouseLeave',
128
+ onPress: 'press',
129
+ onPressWhileDisabled: 'pressWhileDisabled',
131
130
  });
132
131
  /**
133
132
  * Layout container for arranging multiple Button elements horizontally or vertically with configurable placement, alignment, gap, and wrapping.
@@ -137,11 +136,11 @@ exports.ButtonGroup = createComponent('ButtonGroup');
137
136
  * 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).
138
137
  */
139
138
  exports.Card = createComponent('Card', {
140
- onEdit: 'edit',
141
- onDelete: 'delete',
139
+ onAction: 'action',
142
140
  onAdd: 'add',
143
141
  onClick: 'click',
144
- onAction: 'action',
142
+ onDelete: 'delete',
143
+ onEdit: 'edit',
145
144
  });
146
145
  /**
147
146
  * 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.
@@ -154,11 +153,9 @@ exports.Carousel = createComponent('Carousel', {
154
153
  onDone: 'done',
155
154
  });
156
155
  /**
157
- * Chart-specific replacement for `WithSpinner`. While `isLoading` is true and `error` is empty, renders a chart-shaped stencil (the same `ChartVisualizationStencil` bar-chart animation the Analytics Report uses) instead of a generic Pebble spinner. When `error` is non-null/non-false, renders a status-aware `ChartError` fallback that picks an animation + copy variant from the HTTP status (403 forbidden, 404 not found, 400 bad request, 500-or-default), mirroring the Analytics Report `VisualizationErrorFallback`. Otherwise renders children. Emits `load` once on mount so a handler can kick off the data fetch.
156
+ * 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.
158
157
  */
159
- exports.ChartLoader = createComponent('ChartLoader', {
160
- onLoad: 'load',
161
- });
158
+ exports.ChartLoader = createComponent('ChartLoader');
162
159
  /**
163
160
  * 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.
164
161
  */
@@ -169,15 +166,15 @@ exports.CheckList = createComponent('CheckList', {
169
166
  * 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.
170
167
  */
171
168
  exports.Checkbox = createComponent('Checkbox', {
172
- onChange: 'change',
173
169
  onBlur: 'blur',
170
+ onChange: 'change',
174
171
  });
175
172
  /**
176
173
  * 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.
177
174
  */
178
175
  exports.CheckboxGroup = createComponent('CheckboxGroup', {
179
- onChange: 'change',
180
176
  onBlur: 'blur',
177
+ onChange: 'change',
181
178
  });
182
179
  /**
183
180
  * 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.
@@ -200,8 +197,8 @@ exports.Circle = createComponent('Circle');
200
197
  * 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.
201
198
  */
202
199
  exports.ColorPicker = createComponent('ColorPicker', {
203
- onChange: 'change',
204
200
  onBlur: 'blur',
201
+ onChange: 'change',
205
202
  });
206
203
  /**
207
204
  * 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.
@@ -219,29 +216,33 @@ exports.Country = createComponent('Country');
219
216
  * 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.
220
217
  */
221
218
  exports.Currency = createComponent('Currency', {
222
- onChange: 'change',
223
219
  onBlur: 'blur',
220
+ onChange: 'change',
224
221
  });
222
+ /**
223
+ * 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.
224
+ */
225
+ exports.CustomObjectGrid = createComponent('CustomObjectGrid');
225
226
  /**
226
227
  * 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.
227
228
  */
228
229
  exports.Date = createComponent('Date', {
229
- onChange: 'change',
230
230
  onBlur: 'blur',
231
+ onChange: 'change',
231
232
  });
232
233
  /**
233
234
  * 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.
234
235
  */
235
236
  exports.DateInlineMulti = createComponent('DateInlineMulti', {
236
- onChange: 'change',
237
237
  onBlur: 'blur',
238
+ onChange: 'change',
238
239
  });
239
240
  /**
240
241
  * 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.
241
242
  */
242
243
  exports.DateRange = createComponent('DateRange', {
243
- onChange: 'change',
244
244
  onBlur: 'blur',
245
+ onChange: 'change',
245
246
  });
246
247
  /**
247
248
  * 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.
@@ -261,10 +262,10 @@ exports.Divider = createComponent('Divider');
261
262
  * 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.
262
263
  */
263
264
  exports.DraggableList = createComponent('DraggableList', {
264
- onUpdate: 'update',
265
- onRemove: 'remove',
266
- onDragStart: 'dragStart',
267
265
  onDragEnd: 'dragEnd',
266
+ onDragStart: 'dragStart',
267
+ onRemove: 'remove',
268
+ onUpdate: 'update',
268
269
  });
269
270
  /**
270
271
  * 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.
@@ -282,15 +283,15 @@ exports.Dropdown = createComponent('Dropdown', {
282
283
  * 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.
283
284
  */
284
285
  exports.Email = createComponent('Email', {
285
- onChange: 'change',
286
286
  onBlur: 'blur',
287
- onFocus: 'focus',
287
+ onChange: 'change',
288
288
  onClick: 'click',
289
+ onFocus: 'focus',
289
290
  onKeydown: 'keydown',
290
291
  onKeyup: 'keyup',
291
- onPaste: 'paste',
292
292
  onMouseenter: 'mouseenter',
293
293
  onMouseleave: 'mouseleave',
294
+ onPaste: 'paste',
294
295
  });
295
296
  /**
296
297
  * 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.
@@ -315,25 +316,25 @@ exports.File = createComponent('File', {
315
316
  * 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.
316
317
  */
317
318
  exports.FileDrop = createComponent('FileDrop', {
318
- onChange: 'change',
319
319
  onBlur: 'blur',
320
+ onChange: 'change',
320
321
  });
321
322
  /**
322
323
  * 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.
323
324
  */
324
325
  exports.FloatingButton = createComponent('FloatingButton', {
325
- onPress: 'press',
326
- onPressWhileDisabled: 'pressWhileDisabled',
327
326
  onMouseEnter: 'mouseEnter',
328
327
  onMouseLeave: 'mouseLeave',
328
+ onPress: 'press',
329
+ onPressWhileDisabled: 'pressWhileDisabled',
329
330
  });
330
331
  /**
331
332
  * 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.
332
333
  */
333
334
  exports.Grid = createComponent('Grid', {
334
- onRowClick: 'rowClick',
335
- onRowAction: 'rowAction',
336
335
  onHeaderAction: 'headerAction',
336
+ onRowAction: 'rowAction',
337
+ onRowClick: 'rowClick',
337
338
  });
338
339
  /**
339
340
  * 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.
@@ -351,18 +352,18 @@ exports.Icon = createComponent('Icon', { onPress: 'press' });
351
352
  * 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.
352
353
  */
353
354
  exports.IconButton = createComponent('IconButton', {
354
- onPress: 'press',
355
- onPressWhileDisabled: 'pressWhileDisabled',
356
355
  onMouseEnter: 'mouseEnter',
357
356
  onMouseLeave: 'mouseLeave',
357
+ onPress: 'press',
358
+ onPressWhileDisabled: 'pressWhileDisabled',
358
359
  });
359
360
  /**
360
361
  * 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.
361
362
  */
362
363
  exports.Image = createComponent('Image', {
363
- onPress: 'press',
364
- onLoad: 'load',
365
364
  onError: 'error',
365
+ onLoad: 'load',
366
+ onPress: 'press',
366
367
  });
367
368
  /**
368
369
  * 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.
@@ -415,17 +416,17 @@ exports.LoaderCard = createComponent('LoaderCard');
415
416
  * 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.
416
417
  */
417
418
  exports.LocationCard = createComponent('LocationCard', {
418
- onEdit: 'edit',
419
- onDelete: 'delete',
420
- onClick: 'click',
421
419
  onAction: 'action',
420
+ onClick: 'click',
421
+ onDelete: 'delete',
422
+ onEdit: 'edit',
422
423
  });
423
424
  /**
424
425
  * 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.
425
426
  */
426
427
  exports.Masker = createComponent('Masker', {
427
- onChange: 'change',
428
428
  onBlur: 'blur',
429
+ onChange: 'change',
429
430
  });
430
431
  /**
431
432
  * 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.
@@ -449,18 +450,22 @@ exports.ModalFooter = createComponent('ModalFooter');
449
450
  * 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.
450
451
  */
451
452
  exports.NestedList = createComponent('NestedList', {
452
- onToggle: 'toggle',
453
453
  onSelect: 'select',
454
+ onToggle: 'toggle',
454
455
  });
455
456
  /**
456
457
  * 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.
457
458
  */
458
459
  exports.Number = createComponent('Number', {
459
- onChange: 'change',
460
460
  onBlur: 'blur',
461
- onChangeRaw: 'changeRaw',
461
+ onChange: 'change',
462
462
  onChangeCalculationState: 'changeCalculationState',
463
+ onChangeRaw: 'changeRaw',
463
464
  });
465
+ /**
466
+ * 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.
467
+ */
468
+ exports.ObjectListView = createComponent('ObjectListView');
464
469
  /**
465
470
  * 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.
466
471
  */
@@ -519,38 +524,38 @@ exports.Pane = createComponent('Pane', {
519
524
  * 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.
520
525
  */
521
526
  exports.Password = createComponent('Password', {
522
- onChange: 'change',
523
527
  onBlur: 'blur',
524
- onFocus: 'focus',
528
+ onChange: 'change',
525
529
  onClick: 'click',
530
+ onFocus: 'focus',
526
531
  onKeydown: 'keydown',
527
532
  onKeyup: 'keyup',
528
- onPaste: 'paste',
529
533
  onMouseenter: 'mouseenter',
530
534
  onMouseleave: 'mouseleave',
535
+ onPaste: 'paste',
531
536
  onReveal: 'reveal',
532
537
  });
533
538
  /**
534
539
  * 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.
535
540
  */
536
541
  exports.Percentage = createComponent('Percentage', {
537
- onChange: 'change',
538
542
  onBlur: 'blur',
543
+ onChange: 'change',
539
544
  });
540
545
  /**
541
546
  * A specialized input for entering and editing phone numbers with automatic region-based formatting, international support, and an optional country code dropdown selector.
542
547
  */
543
548
  exports.Phone = createComponent('Phone', {
544
- onChange: 'change',
545
549
  onBlur: 'blur',
546
- onFocus: 'focus',
550
+ onChange: 'change',
547
551
  onClick: 'click',
552
+ onCountryCodeChange: 'countryCodeChange',
553
+ onFocus: 'focus',
548
554
  onKeydown: 'keydown',
549
555
  onKeyup: 'keyup',
550
- onPaste: 'paste',
551
556
  onMouseenter: 'mouseenter',
552
557
  onMouseleave: 'mouseleave',
553
- onCountryCodeChange: 'countryCodeChange',
558
+ onPaste: 'paste',
554
559
  });
555
560
  /**
556
561
  * 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.
@@ -564,8 +569,8 @@ exports.ProgressSteps = createComponent('ProgressSteps');
564
569
  * 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.
565
570
  */
566
571
  exports.Radio = createComponent('Radio', {
567
- onChange: 'change',
568
572
  onBlur: 'blur',
573
+ onChange: 'change',
569
574
  onMouseenter: 'mouseenter',
570
575
  onMouseleave: 'mouseleave',
571
576
  });
@@ -573,10 +578,10 @@ exports.Radio = createComponent('Radio', {
573
578
  * 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.
574
579
  */
575
580
  exports.RangeSlider = createComponent('RangeSlider', {
576
- onChange: 'change',
577
- onBeforeChange: 'beforeChange',
578
581
  onAfterChange: 'afterChange',
582
+ onBeforeChange: 'beforeChange',
579
583
  onBlur: 'blur',
584
+ onChange: 'change',
580
585
  });
581
586
  /**
582
587
  * 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.
@@ -590,6 +595,17 @@ exports.ReportShareLoader = createComponent('ReportShareLoader');
590
595
  * 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.
591
596
  */
592
597
  exports.ReportViewerLoader = createComponent('ReportViewerLoader');
598
+ /**
599
+ * 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.
600
+ */
601
+ exports.ResizableBoard = createComponent('ResizableBoard', {
602
+ onBreakpointChange: 'breakpointChange',
603
+ onDragStart: 'dragStart',
604
+ onDragStop: 'dragStop',
605
+ onLayoutChange: 'layoutChange',
606
+ onResizeStart: 'resizeStart',
607
+ onResizeStop: 'resizeStop',
608
+ });
593
609
  /**
594
610
  * 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.
595
611
  */
@@ -598,18 +614,18 @@ exports.Responsive = createComponent('Responsive');
598
614
  * 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.
599
615
  */
600
616
  exports.SegmentedControl = createComponent('SegmentedControl', {
601
- onChange: 'change',
602
617
  onBlur: 'blur',
618
+ onChange: 'change',
603
619
  });
604
620
  /**
605
621
  * 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.
606
622
  */
607
623
  exports.Select = createComponent('Select', {
608
- onChange: 'change',
609
624
  onBlur: 'blur',
625
+ onChange: 'change',
610
626
  onFocus: 'focus',
611
- onPaste: 'paste',
612
627
  onMenuToggle: 'menuToggle',
628
+ onPaste: 'paste',
613
629
  });
614
630
  /**
615
631
  * 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.
@@ -639,8 +655,8 @@ exports.Signature = createComponent('Signature', {
639
655
  * 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.
640
656
  */
641
657
  exports.Sin = createComponent('Sin', {
642
- onChange: 'change',
643
658
  onBlur: 'blur',
659
+ onChange: 'change',
644
660
  });
645
661
  /**
646
662
  * An animated placeholder that mimics the shape of content while it loads, available in text (lines), circle, and box variants.
@@ -650,10 +666,10 @@ exports.Skeleton = createComponent('Skeleton');
650
666
  * 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.
651
667
  */
652
668
  exports.Slider = createComponent('Slider', {
653
- onChange: 'change',
654
- onBlur: 'blur',
655
- onBeforeChange: 'beforeChange',
656
669
  onAfterChange: 'afterChange',
670
+ onBeforeChange: 'beforeChange',
671
+ onBlur: 'blur',
672
+ onChange: 'change',
657
673
  });
658
674
  /**
659
675
  * 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.
@@ -669,8 +685,8 @@ exports.Spinner = createComponent('Spinner');
669
685
  * 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").
670
686
  */
671
687
  exports.SplitButton = createComponent('SplitButton', {
672
- onPress: 'press',
673
688
  onDropdownChange: 'dropdownChange',
689
+ onPress: 'press',
674
690
  });
675
691
  /**
676
692
  * 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.
@@ -680,8 +696,8 @@ exports.SplitPane = createComponent('SplitPane');
680
696
  * 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.
681
697
  */
682
698
  exports.Ssn = createComponent('Ssn', {
683
- onChange: 'change',
684
699
  onBlur: 'blur',
700
+ onChange: 'change',
685
701
  });
686
702
  /**
687
703
  * 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.
@@ -703,8 +719,8 @@ exports.Survey = createComponent('Survey', {
703
719
  * 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.
704
720
  */
705
721
  exports.Switch = createComponent('Switch', {
706
- onChange: 'change',
707
722
  onBlur: 'blur',
723
+ onChange: 'change',
708
724
  });
709
725
  /**
710
726
  * 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.
@@ -722,10 +738,10 @@ exports.Text = createComponent('Text');
722
738
  * 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.
723
739
  */
724
740
  exports.TextAutoSuggest = createComponent('TextAutoSuggest', {
725
- onChange: 'change',
726
741
  onBlur: 'blur',
727
- onFocus: 'focus',
742
+ onChange: 'change',
728
743
  onClick: 'click',
744
+ onFocus: 'focus',
729
745
  });
730
746
  /**
731
747
  * 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.
@@ -735,15 +751,15 @@ exports.TextClip = createComponent('TextClip');
735
751
  * 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.
736
752
  */
737
753
  exports.TextInput = createComponent('TextInput', {
738
- onChange: 'change',
739
754
  onBlur: 'blur',
740
- onFocus: 'focus',
755
+ onChange: 'change',
741
756
  onClick: 'click',
757
+ onFocus: 'focus',
742
758
  onKeydown: 'keydown',
743
759
  onKeyup: 'keyup',
744
- onPaste: 'paste',
745
760
  onMouseenter: 'mouseenter',
746
761
  onMouseleave: 'mouseleave',
762
+ onPaste: 'paste',
747
763
  });
748
764
  /**
749
765
  * 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.
@@ -753,30 +769,30 @@ exports.TextSnippet = createComponent('TextSnippet');
753
769
  * 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.
754
770
  */
755
771
  exports.Textarea = createComponent('Textarea', {
756
- onChange: 'change',
757
772
  onBlur: 'blur',
773
+ onChange: 'change',
758
774
  onFocus: 'focus',
759
775
  });
760
776
  /**
761
777
  * 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.
762
778
  */
763
779
  exports.Time = createComponent('Time', {
764
- onChange: 'change',
765
780
  onBlur: 'blur',
781
+ onChange: 'change',
766
782
  });
767
783
  /**
768
784
  * 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.
769
785
  */
770
786
  exports.TimeRange = createComponent('TimeRange', {
771
- onChange: 'change',
772
787
  onBlur: 'blur',
788
+ onChange: 'change',
773
789
  });
774
790
  /**
775
791
  * 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.
776
792
  */
777
793
  exports.Timezone = createComponent('Timezone', {
778
- onChange: 'change',
779
794
  onBlur: 'blur',
795
+ onChange: 'change',
780
796
  onFocus: 'focus',
781
797
  });
782
798
  /**
@@ -816,116 +832,14 @@ exports.Video = createComponent('Video');
816
832
  * 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
817
833
  */
818
834
  exports.WorkEmail = createComponent('WorkEmail', {
819
- onChange: 'change',
820
835
  onBlur: 'blur',
821
- onFocus: 'focus',
836
+ onChange: 'change',
822
837
  onClick: 'click',
838
+ onFocus: 'focus',
823
839
  onKeydown: 'keydown',
824
840
  onKeyup: 'keyup',
825
- onPaste: 'paste',
826
841
  onMouseenter: 'mouseenter',
827
842
  onMouseleave: 'mouseleave',
843
+ onPaste: 'paste',
828
844
  });
829
- /**
830
- * 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).
831
- */
832
- exports.AnalyticsCard = createComponent('AnalyticsCard', {
833
- onConfigure: 'configure',
834
- });
835
- /**
836
- * Resizable dashboard board for AI widget layouts. Wraps each child in a Pebble ResizableBoard block.
837
- */
838
- exports.ResizableBoard = createComponent('ResizableBoard');
839
- /**
840
- * 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.
841
- */
842
- exports.EChart = createComponent('EChart', {
843
- onClick: 'click',
844
- onLegendChange: 'legendChange',
845
- onDataZoomChange: 'dataZoomChange',
846
- });
847
- /**
848
- * Read-only HTML content rendered with the shared RichTextEditor (non-editable). Generic SDUI building block for narrative or explanatory copy in any product layout.
849
- */
850
- exports.RichText = createComponent('RichText');
851
- /**
852
- * Deprecated alias for RichText. Same props; prefer type `RichText` in new specs.
853
- */
854
- exports.DashboardRichText = createComponent('DashboardRichText');
855
- /**
856
- * 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.
857
- */
858
- exports.CustomObjectGrid = createComponent('CustomObjectGrid');
859
- /**
860
- * 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.
861
- */
862
- exports.ObjectListView = createComponent('ObjectListView');
863
- /**
864
- * 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.
865
- */
866
- exports.BarChart = createComponent('BarChart', {
867
- onBarClick: 'barClick',
868
- });
869
- /**
870
- * 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.
871
- */
872
- exports.LineChart = createComponent('LineChart');
873
- /**
874
- * 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.
875
- */
876
- exports.HorizontalBarChart = createComponent('HorizontalBarChart');
877
- /**
878
- * 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.
879
- */
880
- exports.CombinationChart = createComponent('CombinationChart');
881
- /**
882
- * Pie / donut chart. Each series entry has a data array of {name, value} pairs. Use radius: ["50%", "70%"] for a donut hole.
883
- */
884
- exports.PieChart = createComponent('PieChart');
885
- /**
886
- * Scatter plot. Each series contains [x, y] data pairs plotted as individual points.
887
- */
888
- exports.ScatterChart = createComponent('ScatterChart');
889
- /**
890
- * Funnel chart for conversion or stage-based data. Data items are ordered by value (largest at top).
891
- */
892
- exports.FunnelChart = createComponent('FunnelChart');
893
- /**
894
- * Gauge (speedometer) chart. Displays a single numeric value against colored segments. Segments define the scale breakpoints and their colors.
895
- */
896
- exports.GaugeChart = createComponent('GaugeChart');
897
- /**
898
- * Sunburst (multi-level pie) chart for hierarchical data. Each node has a name, optional value, and optional children array.
899
- */
900
- exports.SunburstChart = createComponent('SunburstChart');
901
- /**
902
- * 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.
903
- */
904
- exports.WithSpinner = createComponent('WithSpinner', {
905
- onLoad: 'load',
906
- });
907
- /**
908
- * Radar (spider) chart for comparing multiple variables across categories. Each indicator defines a spoke axis. Provide radarIndicators (axis definitions) and radarOptions (series data).
909
- */
910
- exports.RadarChart = createComponent('RadarChart');
911
- /**
912
- * 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.
913
- */
914
- exports.RadarFilledChart = createComponent('RadarFilledChart');
915
- /**
916
- * 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.
917
- */
918
- exports.HeatmapCalendarChart = createComponent('HeatmapCalendarChart');
919
- /**
920
- * Grid-based heatmap chart for showing magnitude across two dimensions. Data format: [[xIndex, yIndex, value], …]. Provide category labels for both axes.
921
- */
922
- exports.HeatmapChart = createComponent('HeatmapChart');
923
- /**
924
- * 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.
925
- */
926
- exports.TreemapChart = createComponent('TreemapChart');
927
- /**
928
- * 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.
929
- */
930
- exports.SqlHighlight = createComponent('SqlHighlight');
931
845
  //# sourceMappingURL=components.js.map