@brightspot/ui 6.4.2-rc.1 → 6.4.2

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 (68) hide show
  1. package/dist/custom-elements.json +497 -497
  2. package/dist/storybook/assets/{ActionBar.stories-CyrWbZkU.js → ActionBar.stories-S00Ek6J4.js} +1 -1
  3. package/dist/storybook/assets/{ActionItem.stories-D289PqhK.js → ActionItem.stories-D4F9yCyV.js} +1 -1
  4. package/dist/storybook/assets/{AiSparkle.stories-Dej2Wktc.js → AiSparkle.stories-vC8jum9o.js} +1 -1
  5. package/dist/storybook/assets/{Avatar.stories-DGUhUkwq.js → Avatar.stories-BvCzPIfr.js} +1 -1
  6. package/dist/storybook/assets/{AvatarGroup.stories-CPwRaMIK.js → AvatarGroup.stories-VRTsctUo.js} +1 -1
  7. package/dist/storybook/assets/{Badge.stories-0KzitC2n.js → Badge.stories-DPaTwNDd.js} +1 -1
  8. package/dist/storybook/assets/{Banner.stories-DNtqnXAp.js → Banner.stories-Ki6o6Qnz.js} +1 -1
  9. package/dist/storybook/assets/{Button-CWHtTXwM.js → Button-BVkUpjw-.js} +1 -1
  10. package/dist/storybook/assets/{Button.stories-Bi-MajOM.js → Button.stories-B4Cajufa.js} +1 -1
  11. package/dist/storybook/assets/{ButtonGroup.stories-DRVCaM3T.js → ButtonGroup.stories--XdEhkoR.js} +1 -1
  12. package/dist/storybook/assets/{Card.stories-Ca21MUf2.js → Card.stories-DdaTXloZ.js} +1 -1
  13. package/dist/storybook/assets/{Celebrate.stories-d4ouDVSf.js → Celebrate.stories-5krJLBnV.js} +1 -1
  14. package/dist/storybook/assets/{Checkbox.stories-DGYMCoPL.js → Checkbox.stories-DJiir-4S.js} +1 -1
  15. package/dist/storybook/assets/{CircularProgress.stories-TLUKn59S.js → CircularProgress.stories-FoLbJ02D.js} +1 -1
  16. package/dist/storybook/assets/{ClipboardMixin.stories-D4sLLX3A.js → ClipboardMixin.stories-C_Y93Vvc.js} +1 -1
  17. package/dist/storybook/assets/{Color-6BZIO3FS-DasxsVys.js → Color-6BZIO3FS-Cal-f26G.js} +1 -1
  18. package/dist/storybook/assets/{Colors.stories-BcaxhrWi.js → Colors.stories-BIOYpAZL.js} +1 -1
  19. package/dist/storybook/assets/{CombinedEffects.stories-Da1vPYog.js → CombinedEffects.stories-z1_xU5i7.js} +1 -1
  20. package/dist/storybook/assets/{ComponentStatesMixin-C5-EArF-.js → ComponentStatesMixin-DCnHVb7T.js} +1 -1
  21. package/dist/storybook/assets/{ComponentStatesMixin.stories-DPp1pnlh.js → ComponentStatesMixin.stories-Crysvxtr.js} +1 -1
  22. package/dist/storybook/assets/{CopyToClipboard.stories-CrYOAXIE.js → CopyToClipboard.stories-CMpzwyh6.js} +1 -1
  23. package/dist/storybook/assets/{Debounce.stories-OHpSSOWP.js → Debounce.stories-C2FgBZXP.js} +1 -1
  24. package/dist/storybook/assets/{DocsRenderer-LL677BLK-BBjqnKJz.js → DocsRenderer-LL677BLK-CxHYlXfz.js} +3 -3
  25. package/dist/storybook/assets/{Dropdown.stories-Ca_3OzYk.js → Dropdown.stories-DhBn1nVs.js} +1 -1
  26. package/dist/storybook/assets/{EmptyState.stories-IJOBvkeQ.js → EmptyState.stories-CBIvJ1Tk.js} +1 -1
  27. package/dist/storybook/assets/{EscaAvatar.stories-Ca5mrHK5.js → EscaAvatar.stories-DKPhkhvA.js} +1 -1
  28. package/dist/storybook/assets/{Events.stories-mk3o4H-1.js → Events.stories-DLbfdSXr.js} +1 -1
  29. package/dist/storybook/assets/{Heading.stories-BCmCdDGL.js → Heading.stories-B6CIwwiJ.js} +1 -1
  30. package/dist/storybook/assets/{HueRipple.stories-DFtimmD-.js → HueRipple.stories-C8E72qX_.js} +1 -1
  31. package/dist/storybook/assets/{Icon.stories-CfsBM1vA.js → Icon.stories-YUubIb9i.js} +1 -1
  32. package/dist/storybook/assets/{IconButton.stories-BqMbwr3s.js → IconButton.stories-07ADapHQ.js} +1 -1
  33. package/dist/storybook/assets/{LinearProgress.stories-BWdemzi0.js → LinearProgress.stories-DZk0i6LC.js} +1 -1
  34. package/dist/storybook/assets/{Message.stories-Z_H9PmGg.js → Message.stories-BaTncCPY.js} +1 -1
  35. package/dist/storybook/assets/{OnFindMixin.stories-DmCtF_Py.js → OnFindMixin.stories-BKgCI6zb.js} +1 -1
  36. package/dist/storybook/assets/{Pagination.stories-BbiH-XdZ.js → Pagination.stories-BrD-TcnC.js} +1 -1
  37. package/dist/storybook/assets/{Popover.stories-bxWb2l8c.js → Popover.stories-CUe375fR.js} +1 -1
  38. package/dist/storybook/assets/{ReadyMixin-DehOcbYB.js → ReadyMixin-XQ_tHzRU.js} +1 -1
  39. package/dist/storybook/assets/{RovingTabindexMixin.stories-PDi3Gbmt.js → RovingTabindexMixin.stories-BBc7zdjl.js} +1 -1
  40. package/dist/storybook/assets/{Rtc.stories-fVPUs7VO.js → Rtc.stories-CkEgMrqd.js} +1 -1
  41. package/dist/storybook/assets/{ScrollShadow.stories-D7MTe49h.js → ScrollShadow.stories-DdOKLFJ5.js} +1 -1
  42. package/dist/storybook/assets/{Switch.stories-_Xgp_9V4.js → Switch.stories-Dw9Jic7Y.js} +1 -1
  43. package/dist/storybook/assets/{Tab.stories-DgO_oZX0.js → Tab.stories-CUAvvpwI.js} +1 -1
  44. package/dist/storybook/assets/{Tabs.stories-ChN1szFL.js → Tabs.stories--iRj2mWu.js} +1 -1
  45. package/dist/storybook/assets/{Throttle.stories-ClFkiAMe.js → Throttle.stories-BDuNJMQg.js} +1 -1
  46. package/dist/storybook/assets/{Tooltip.stories-BHOdZEw2.js → Tooltip.stories-RaSZ71_I.js} +1 -1
  47. package/dist/storybook/assets/{Upload.stories-BLs0X2F6.js → Upload.stories-hhhR_V85.js} +1 -1
  48. package/dist/storybook/assets/{UploadItem.stories-CHCpPL7t.js → UploadItem.stories-B-1lkPzO.js} +1 -1
  49. package/dist/storybook/assets/{Welcome.stories-DLoiQCnZ.js → Welcome.stories-BycQWbzd.js} +3 -3
  50. package/dist/storybook/assets/{Widget.stories-Bk4jjx7Q.js → Widget.stories-BDcpbQXU.js} +1 -1
  51. package/dist/storybook/assets/{WithTooltip-65CFNBJE-Ckgk7wzk.js → WithTooltip-65CFNBJE-CHL0JiUq.js} +1 -1
  52. package/dist/storybook/assets/{blocks-wSKOBuKH.js → blocks-DllEBdtP.js} +5 -5
  53. package/dist/storybook/assets/{formatter-EIJCOSYU-DEpJ5Gq0.js → formatter-EIJCOSYU-LrYXshB9.js} +1 -1
  54. package/dist/storybook/assets/if-defined-DONC-k_n.js +1 -0
  55. package/dist/storybook/assets/{iframe-BSHPpSig.js → iframe-Bp7-_nUZ.js} +5 -5
  56. package/dist/storybook/assets/{index-Cn8vvE6a.js → index-Cc3M657Z.js} +1 -1
  57. package/dist/storybook/assets/{onFind-DJOHkvQ2.js → onFind-Du4z1ObO.js} +1 -1
  58. package/dist/storybook/assets/{onFind.stories-CTmXCV_g.js → onFind.stories-BCUiC6a9.js} +1 -1
  59. package/dist/storybook/assets/{onRemove.stories-r7-2gQn3.js → onRemove.stories-B-ICGMhl.js} +1 -1
  60. package/dist/storybook/assets/{onVisible.stories-B_Lx-0SL.js → onVisible.stories-DijYge1X.js} +1 -1
  61. package/dist/storybook/assets/{style-map-uSz4USKK.js → style-map-DaohL-ne.js} +1 -1
  62. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-D36nxrU2.js → syntaxhighlighter-ED5Y7EFY-CH5_k0Po.js} +1 -1
  63. package/dist/storybook/iframe.html +1 -1
  64. package/dist/storybook/index.html +3 -2
  65. package/dist/storybook/project.json +1 -1
  66. package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +1 -1
  67. package/package.json +1 -1
  68. package/dist/storybook/assets/if-defined-DphVHb7j.js +0 -1
@@ -7207,151 +7207,133 @@
7207
7207
  },
7208
7208
  {
7209
7209
  "kind": "javascript-module",
7210
- "path": "src/components/pagination/Pagination.ts",
7210
+ "path": "src/components/popover/Popover.ts",
7211
7211
  "declarations": [
7212
7212
  {
7213
7213
  "kind": "class",
7214
- "description": "A pagination component for navigating through paged content.\n\nSupports multiple layout variants (Search, Widget, Widget Small, Calendar)\nthrough configurable props and pseudo-slots.\n\n**Page size modes:**\n\n- **Built-in** (default): When no `slot=\"page-size\"` is provided and `page-size-changer`\n is true, Pagination renders its own `btu-dropdown` from the `page-size-options` attribute.\n Events, label sync, and page size changes are managed automatically.\n\n- **Custom slot**: When a child has `slot=\"page-size\"`, the built-in dropdown is suppressed.\n The consumer owns all behavior — event handling, label sync, etc. Use this for non-standard\n selectors like a calendar week/month toggle.\n\n**Page jumper modes:**\n\n- **Built-in**: When `page-jumper` is true and no `slot=\"jumper\"` is provided, Pagination\n renders a dropdown with \"Page 1\" through \"Page N\" items. Fully reactive — updates\n automatically when page, page size, or total items change.\n\n- **Custom slot**: When a child has `slot=\"jumper\"`, the built-in dropdown is suppressed.\n The consumer owns all behavior. Use this for custom jumper content like a \"Today\" button.",
7215
- "name": "Pagination",
7214
+ "description": "A popover component for displaying rich interactive content anchored to a trigger element.\n\nUses the native HTML Popover API for top-layer rendering, light dismiss (click-outside\nand Escape for click triggers), and focus management. CSS anchor positioning handles\nviewport-aware placement.\n\nFor click triggers (`popover=\"auto\"`), the browser provides:\n- Light dismiss (Escape key and click-outside)\n- Top-layer rendering (no z-index needed)\n- Focus restoration on close\n- `autofocus` support — add `autofocus` to an element inside `slot=\"content\"`\n to have it receive focus when the popover opens",
7215
+ "name": "Popover",
7216
7216
  "cssProperties": [
7217
7217
  {
7218
- "description": "Background color for dropdowns, buttons, and jumper",
7219
- "name": "--pagination-color-background"
7218
+ "description": "Panel background color (default: var(--btu-theme-white); inverted: var(--btu-theme-black))",
7219
+ "name": "--popover-color-background"
7220
7220
  },
7221
7221
  {
7222
- "description": "Text/icon color",
7223
- "name": "--pagination-color-foreground"
7224
- }
7225
- ],
7226
- "slots": [
7227
- {
7228
- "description": "Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior.",
7229
- "name": "page-size"
7222
+ "description": "Panel text color (default: oklch(var(--btu-theme-gray-900)); inverted: var(--btu-theme-white))",
7223
+ "name": "--popover-color-content"
7230
7224
  },
7231
7225
  {
7232
- "description": "Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior.",
7233
- "name": "jumper"
7234
- }
7235
- ],
7236
- "members": [
7226
+ "description": "Panel corner radius (default: theme borderRadius.lg)",
7227
+ "name": "--popover-border-radius"
7228
+ },
7237
7229
  {
7238
- "kind": "field",
7239
- "name": "page",
7240
- "type": {
7241
- "text": "number"
7242
- },
7243
- "default": "1",
7244
- "description": "Current page number (1-based)",
7245
- "attribute": "page"
7230
+ "description": "Edge width, panel and arrow (default: 1px; 0 removes it)",
7231
+ "name": "--popover-border-width"
7246
7232
  },
7247
7233
  {
7248
- "kind": "field",
7249
- "name": "pageSize",
7250
- "type": {
7251
- "text": "number"
7252
- },
7253
- "default": "0",
7254
- "description": "Number of items per page",
7255
- "attribute": "page-size"
7234
+ "description": "Edge color, panel and arrow (default: oklch(var(--btu-theme-gray-200)))",
7235
+ "name": "--popover-border-color"
7256
7236
  },
7257
7237
  {
7258
- "kind": "field",
7259
- "name": "disabled",
7260
- "type": {
7261
- "text": "boolean"
7262
- },
7263
- "default": "false",
7264
- "description": "Disables all pagination controls",
7265
- "attribute": "disabled"
7238
+ "description": "Gap between trigger and panel (default: 8px; see btu-popover-offset-{sm|md|lg|xl})",
7239
+ "name": "--popover-offset"
7266
7240
  },
7267
7241
  {
7268
- "kind": "field",
7269
- "name": "loading",
7270
- "type": {
7271
- "text": "boolean"
7272
- },
7273
- "default": "false",
7274
- "description": "Shows loading spinner and dims controls",
7275
- "attribute": "loading"
7242
+ "description": "Width/height of the pointer arrow (default: 8px)",
7243
+ "name": "--popover-arrow-size"
7244
+ }
7245
+ ],
7246
+ "slots": [
7247
+ {
7248
+ "description": "The element that activates the popover",
7249
+ "name": "trigger"
7276
7250
  },
7251
+ {
7252
+ "description": "Rich HTML content displayed inside the popover panel",
7253
+ "name": "content"
7254
+ }
7255
+ ],
7256
+ "members": [
7277
7257
  {
7278
7258
  "kind": "field",
7279
- "name": "hideOnSinglePage",
7259
+ "name": "position",
7280
7260
  "type": {
7281
- "text": "boolean"
7261
+ "text": "'top' | 'bottom' | 'left' | 'right'"
7282
7262
  },
7283
- "default": "true",
7284
- "description": "Hide controls when there is only one page",
7285
- "attribute": "hide-on-single-page"
7263
+ "default": "'bottom'",
7264
+ "description": "Position relative to the trigger element.\nAuto-flips when constrained by the viewport.",
7265
+ "attribute": "position"
7286
7266
  },
7287
7267
  {
7288
7268
  "kind": "field",
7289
- "name": "pageSizeChanger",
7269
+ "name": "trigger",
7290
7270
  "type": {
7291
- "text": "boolean"
7271
+ "text": "'click' | 'hover' | 'focus'"
7292
7272
  },
7293
- "default": "true",
7294
- "description": "Show the page size dropdown",
7295
- "attribute": "page-size-changer"
7273
+ "default": "'click'",
7274
+ "description": "How the popover is activated.\n- 'click': Toggle on click with light dismiss\n- 'hover': Show on mouseenter with delay\n- 'focus': Show on focusin",
7275
+ "attribute": "trigger"
7296
7276
  },
7297
7277
  {
7298
7278
  "kind": "field",
7299
- "name": "pageSizeOptions",
7279
+ "name": "delay",
7300
7280
  "type": {
7301
- "text": "string"
7281
+ "text": "number"
7302
7282
  },
7303
- "default": "'10, 20, 50'",
7304
- "description": "Comma-separated page size options",
7305
- "attribute": "page-size-options"
7283
+ "default": "300",
7284
+ "description": "Show delay in milliseconds (hover trigger only).",
7285
+ "attribute": "delay"
7306
7286
  },
7307
7287
  {
7308
7288
  "kind": "field",
7309
- "name": "totalItems",
7289
+ "name": "offset",
7310
7290
  "type": {
7311
- "text": "number"
7291
+ "text": "PopoverOffset | null"
7312
7292
  },
7313
- "default": "0",
7314
- "description": "Total number of items across all pages",
7315
- "attribute": "total-items"
7293
+ "default": "null",
7294
+ "description": "Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px).",
7295
+ "attribute": "offset"
7316
7296
  },
7317
7297
  {
7318
7298
  "kind": "field",
7319
- "name": "boundaryButtons",
7299
+ "name": "noArrow",
7320
7300
  "type": {
7321
7301
  "text": "boolean"
7322
7302
  },
7323
- "default": "true",
7324
- "description": "Show first and last page buttons",
7325
- "attribute": "boundary-buttons"
7303
+ "default": "false",
7304
+ "description": "Hide the arrow pseudo-element.",
7305
+ "attribute": "no-arrow"
7326
7306
  },
7327
7307
  {
7328
7308
  "kind": "field",
7329
- "name": "hideTotalCount",
7309
+ "name": "inverted",
7330
7310
  "type": {
7331
7311
  "text": "boolean"
7332
7312
  },
7333
7313
  "default": "false",
7334
- "description": "Hide the item count display (e.g., \"1-10 of 200\")",
7335
- "attribute": "hide-total-count"
7314
+ "description": "Invert the panel surface (dark on light pages, light on dark pages).\nOpt-in, since the panel holds arbitrary rich content.",
7315
+ "attribute": "inverted"
7336
7316
  },
7337
7317
  {
7338
7318
  "kind": "field",
7339
- "name": "pageJumper",
7319
+ "name": "open",
7340
7320
  "type": {
7341
7321
  "text": "boolean"
7342
7322
  },
7343
7323
  "default": "false",
7344
- "description": "Show the page jumper dropdown. Intended for moderate page counts (under ~100 pages).\nFor large datasets, use a custom `slot=\"jumper\"` with a virtualized or input-based control.",
7345
- "attribute": "page-jumper"
7324
+ "description": "Programmatic open/close state (reflected).",
7325
+ "attribute": "open",
7326
+ "reflects": true
7346
7327
  },
7347
7328
  {
7348
7329
  "kind": "field",
7349
- "name": "label",
7330
+ "name": "panelLabel",
7350
7331
  "type": {
7351
- "text": "string | undefined"
7332
+ "text": "string"
7352
7333
  },
7353
- "description": "Accessible label for the pagination nav landmark",
7354
- "attribute": "label"
7334
+ "default": "''",
7335
+ "description": "Accessible label for the popover panel (applied as aria-label on the dialog).",
7336
+ "attribute": "panel-label"
7355
7337
  },
7356
7338
  {
7357
7339
  "kind": "field",
@@ -7364,175 +7346,43 @@
7364
7346
  },
7365
7347
  {
7366
7348
  "kind": "field",
7367
- "name": "_parsedPageSizeOptions",
7368
- "type": {
7369
- "text": "number[]"
7370
- },
7371
- "privacy": "private",
7372
- "readonly": true
7349
+ "name": "_onTriggerMouseLeave",
7350
+ "privacy": "private"
7373
7351
  },
7374
7352
  {
7375
7353
  "kind": "field",
7376
- "name": "_totalPages",
7377
- "type": {
7378
- "text": "number"
7379
- },
7380
- "privacy": "private",
7381
- "readonly": true
7354
+ "name": "_onTriggerFocusIn",
7355
+ "privacy": "private"
7382
7356
  },
7383
7357
  {
7384
7358
  "kind": "field",
7385
- "name": "_startItem",
7386
- "type": {
7387
- "text": "number"
7388
- },
7389
- "privacy": "private",
7390
- "readonly": true
7359
+ "name": "_onTriggerFocusOut",
7360
+ "privacy": "private"
7391
7361
  },
7392
7362
  {
7393
7363
  "kind": "field",
7394
- "name": "_endItem",
7395
- "type": {
7396
- "text": "number"
7397
- },
7398
- "privacy": "private",
7399
- "readonly": true
7400
- },
7401
- {
7402
- "kind": "method",
7403
- "name": "_setupSlots",
7404
- "privacy": "private",
7405
- "return": {
7406
- "type": {
7407
- "text": "void"
7408
- }
7409
- }
7410
- },
7411
- {
7412
- "kind": "method",
7413
- "name": "_goToFirstPage",
7414
- "privacy": "private",
7415
- "return": {
7416
- "type": {
7417
- "text": "void"
7418
- }
7419
- },
7420
- "parameters": [
7421
- {
7422
- "name": "e",
7423
- "type": {
7424
- "text": "Event"
7425
- }
7426
- }
7427
- ]
7428
- },
7429
- {
7430
- "kind": "method",
7431
- "name": "_goToPreviousPage",
7432
- "privacy": "private",
7433
- "return": {
7434
- "type": {
7435
- "text": "void"
7436
- }
7437
- },
7438
- "parameters": [
7439
- {
7440
- "name": "e",
7441
- "type": {
7442
- "text": "Event"
7443
- }
7444
- }
7445
- ]
7446
- },
7447
- {
7448
- "kind": "method",
7449
- "name": "_goToNextPage",
7450
- "privacy": "private",
7451
- "return": {
7452
- "type": {
7453
- "text": "void"
7454
- }
7455
- },
7456
- "parameters": [
7457
- {
7458
- "name": "e",
7459
- "type": {
7460
- "text": "Event"
7461
- }
7462
- }
7463
- ]
7364
+ "name": "_onPanelMouseEnter",
7365
+ "privacy": "private"
7464
7366
  },
7465
7367
  {
7466
- "kind": "method",
7467
- "name": "_goToLastPage",
7468
- "privacy": "private",
7469
- "return": {
7470
- "type": {
7471
- "text": "void"
7472
- }
7473
- },
7474
- "parameters": [
7475
- {
7476
- "name": "e",
7477
- "type": {
7478
- "text": "Event"
7479
- }
7480
- }
7481
- ]
7368
+ "kind": "field",
7369
+ "name": "_onPanelMouseLeave",
7370
+ "privacy": "private"
7482
7371
  },
7483
7372
  {
7484
- "kind": "method",
7485
- "name": "_manageBoundaryFocus",
7486
- "privacy": "private",
7487
- "return": {
7488
- "type": {
7489
- "text": "void"
7490
- }
7491
- },
7492
- "parameters": [
7493
- {
7494
- "name": "clickedButton",
7495
- "type": {
7496
- "text": "IconButton"
7497
- }
7498
- }
7499
- ]
7373
+ "kind": "field",
7374
+ "name": "_onNativeToggle",
7375
+ "privacy": "private"
7500
7376
  },
7501
7377
  {
7502
- "kind": "method",
7503
- "name": "_onBuiltinPageSizeSelect",
7504
- "privacy": "private",
7505
- "return": {
7506
- "type": {
7507
- "text": "void"
7508
- }
7509
- },
7510
- "parameters": [
7511
- {
7512
- "name": "e",
7513
- "type": {
7514
- "text": "Event"
7515
- }
7516
- }
7517
- ]
7378
+ "kind": "field",
7379
+ "name": "_onKeyDown",
7380
+ "privacy": "private"
7518
7381
  },
7519
7382
  {
7520
- "kind": "method",
7521
- "name": "_onBuiltinJumperSelect",
7522
- "privacy": "private",
7523
- "return": {
7524
- "type": {
7525
- "text": "void"
7526
- }
7527
- },
7528
- "parameters": [
7529
- {
7530
- "name": "e",
7531
- "type": {
7532
- "text": "Event"
7533
- }
7534
- }
7535
- ]
7383
+ "kind": "field",
7384
+ "name": "_onViewportChange",
7385
+ "privacy": "private"
7536
7386
  },
7537
7387
  {
7538
7388
  "kind": "method",
@@ -7571,360 +7421,473 @@
7571
7421
  "type": {
7572
7422
  "text": "CustomEvent"
7573
7423
  },
7574
- "description": "Fired after first render",
7575
- "name": "btu-pagination-ready"
7424
+ "description": "Fired when the popover opens",
7425
+ "name": "btu-popover-show"
7576
7426
  },
7577
7427
  {
7578
7428
  "type": {
7579
- "text": "CustomEvent<{page: number, pageSize: number}>"
7429
+ "text": "CustomEvent"
7580
7430
  },
7581
- "description": "Fired on page navigation",
7582
- "name": "btu-pagination-change"
7431
+ "description": "Fired when the popover closes",
7432
+ "name": "btu-popover-hide"
7433
+ }
7434
+ ],
7435
+ "attributes": [
7436
+ {
7437
+ "name": "position",
7438
+ "type": {
7439
+ "text": "'top' | 'bottom' | 'left' | 'right'"
7440
+ },
7441
+ "default": "'bottom'",
7442
+ "description": "Position relative to the trigger element.\nAuto-flips when constrained by the viewport.",
7443
+ "fieldName": "position",
7444
+ "attribute": "position"
7583
7445
  },
7584
7446
  {
7447
+ "name": "trigger",
7585
7448
  "type": {
7586
- "text": "CustomEvent<{page: number, pageSize: number}>"
7449
+ "text": "'click' | 'hover' | 'focus'"
7587
7450
  },
7588
- "description": "Fired on page size change",
7589
- "name": "btu-pagination-page-size-change"
7451
+ "default": "'click'",
7452
+ "description": "How the popover is activated.\n- 'click': Toggle on click with light dismiss\n- 'hover': Show on mouseenter with delay\n- 'focus': Show on focusin",
7453
+ "fieldName": "trigger",
7454
+ "attribute": "trigger"
7455
+ },
7456
+ {
7457
+ "name": "delay",
7458
+ "type": {
7459
+ "text": "number"
7460
+ },
7461
+ "default": "300",
7462
+ "description": "Show delay in milliseconds (hover trigger only).",
7463
+ "fieldName": "delay",
7464
+ "attribute": "delay"
7465
+ },
7466
+ {
7467
+ "name": "offset",
7468
+ "type": {
7469
+ "text": "PopoverOffset | null"
7470
+ },
7471
+ "default": "null",
7472
+ "description": "Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px).",
7473
+ "fieldName": "offset",
7474
+ "attribute": "offset"
7475
+ },
7476
+ {
7477
+ "name": "noArrow",
7478
+ "type": {
7479
+ "text": "boolean"
7480
+ },
7481
+ "default": "false",
7482
+ "description": "Hide the arrow pseudo-element.",
7483
+ "fieldName": "noArrow"
7484
+ },
7485
+ {
7486
+ "name": "inverted",
7487
+ "type": {
7488
+ "text": "boolean"
7489
+ },
7490
+ "default": "false",
7491
+ "description": "Invert the panel surface (dark on light pages, light on dark pages).\nOpt-in, since the panel holds arbitrary rich content.",
7492
+ "fieldName": "inverted",
7493
+ "attribute": "inverted"
7494
+ },
7495
+ {
7496
+ "name": "open",
7497
+ "type": {
7498
+ "text": "boolean"
7499
+ },
7500
+ "default": "false",
7501
+ "description": "Programmatic open/close state (reflected).",
7502
+ "fieldName": "open",
7503
+ "attribute": "open"
7504
+ },
7505
+ {
7506
+ "name": "panel-label",
7507
+ "type": {
7508
+ "text": "string"
7509
+ },
7510
+ "default": "''",
7511
+ "description": "Accessible label for the popover panel (applied as aria-label on the dialog).",
7512
+ "fieldName": "panelLabel",
7513
+ "attribute": "panel-label"
7514
+ },
7515
+ {
7516
+ "name": "no-arrow",
7517
+ "type": {
7518
+ "text": "boolean"
7519
+ },
7520
+ "default": "false",
7521
+ "description": "Hide the arrow pseudo-element.",
7522
+ "attribute": "noArrow",
7523
+ "fieldName": "noArrow"
7524
+ }
7525
+ ],
7526
+ "mixins": [
7527
+ {
7528
+ "name": "EventEmitterMixin",
7529
+ "module": "/src/util/EventEmitterMixin.js"
7530
+ },
7531
+ {
7532
+ "name": "ReadyMixin",
7533
+ "module": "/src/util/ReadyMixin.js"
7534
+ }
7535
+ ],
7536
+ "superclass": {
7537
+ "name": "LitElement",
7538
+ "package": "lit"
7539
+ },
7540
+ "tagName": "btu-popover",
7541
+ "customElement": true
7542
+ }
7543
+ ],
7544
+ "exports": [
7545
+ {
7546
+ "kind": "js",
7547
+ "name": "default",
7548
+ "declaration": {
7549
+ "name": "Popover",
7550
+ "module": "src/components/popover/Popover.ts"
7551
+ }
7552
+ },
7553
+ {
7554
+ "kind": "custom-element-definition",
7555
+ "name": "btu-popover",
7556
+ "declaration": {
7557
+ "name": "Popover",
7558
+ "module": "src/components/popover/Popover.ts"
7559
+ }
7560
+ }
7561
+ ]
7562
+ },
7563
+ {
7564
+ "kind": "javascript-module",
7565
+ "path": "src/components/pagination/Pagination.ts",
7566
+ "declarations": [
7567
+ {
7568
+ "kind": "class",
7569
+ "description": "A pagination component for navigating through paged content.\n\nSupports multiple layout variants (Search, Widget, Widget Small, Calendar)\nthrough configurable props and pseudo-slots.\n\n**Page size modes:**\n\n- **Built-in** (default): When no `slot=\"page-size\"` is provided and `page-size-changer`\n is true, Pagination renders its own `btu-dropdown` from the `page-size-options` attribute.\n Events, label sync, and page size changes are managed automatically.\n\n- **Custom slot**: When a child has `slot=\"page-size\"`, the built-in dropdown is suppressed.\n The consumer owns all behavior — event handling, label sync, etc. Use this for non-standard\n selectors like a calendar week/month toggle.\n\n**Page jumper modes:**\n\n- **Built-in**: When `page-jumper` is true and no `slot=\"jumper\"` is provided, Pagination\n renders a dropdown with \"Page 1\" through \"Page N\" items. Fully reactive — updates\n automatically when page, page size, or total items change.\n\n- **Custom slot**: When a child has `slot=\"jumper\"`, the built-in dropdown is suppressed.\n The consumer owns all behavior. Use this for custom jumper content like a \"Today\" button.",
7570
+ "name": "Pagination",
7571
+ "cssProperties": [
7572
+ {
7573
+ "description": "Background color for dropdowns, buttons, and jumper",
7574
+ "name": "--pagination-color-background"
7575
+ },
7576
+ {
7577
+ "description": "Text/icon color",
7578
+ "name": "--pagination-color-foreground"
7579
+ }
7580
+ ],
7581
+ "slots": [
7582
+ {
7583
+ "description": "Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior.",
7584
+ "name": "page-size"
7585
+ },
7586
+ {
7587
+ "description": "Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior.",
7588
+ "name": "jumper"
7590
7589
  }
7591
7590
  ],
7592
- "attributes": [
7591
+ "members": [
7593
7592
  {
7593
+ "kind": "field",
7594
7594
  "name": "page",
7595
7595
  "type": {
7596
7596
  "text": "number"
7597
7597
  },
7598
7598
  "default": "1",
7599
7599
  "description": "Current page number (1-based)",
7600
- "fieldName": "page",
7601
7600
  "attribute": "page"
7602
7601
  },
7603
7602
  {
7604
- "name": "page-size",
7603
+ "kind": "field",
7604
+ "name": "pageSize",
7605
7605
  "type": {
7606
7606
  "text": "number"
7607
7607
  },
7608
7608
  "default": "0",
7609
7609
  "description": "Number of items per page",
7610
- "fieldName": "pageSize",
7611
7610
  "attribute": "page-size"
7612
7611
  },
7613
7612
  {
7613
+ "kind": "field",
7614
7614
  "name": "disabled",
7615
7615
  "type": {
7616
7616
  "text": "boolean"
7617
7617
  },
7618
7618
  "default": "false",
7619
7619
  "description": "Disables all pagination controls",
7620
- "fieldName": "disabled",
7621
7620
  "attribute": "disabled"
7622
7621
  },
7623
7622
  {
7623
+ "kind": "field",
7624
7624
  "name": "loading",
7625
7625
  "type": {
7626
7626
  "text": "boolean"
7627
7627
  },
7628
7628
  "default": "false",
7629
7629
  "description": "Shows loading spinner and dims controls",
7630
- "fieldName": "loading",
7631
7630
  "attribute": "loading"
7632
7631
  },
7633
7632
  {
7634
- "name": "hide-on-single-page",
7633
+ "kind": "field",
7634
+ "name": "hideOnSinglePage",
7635
7635
  "type": {
7636
7636
  "text": "boolean"
7637
7637
  },
7638
7638
  "default": "true",
7639
7639
  "description": "Hide controls when there is only one page",
7640
- "fieldName": "hideOnSinglePage",
7641
7640
  "attribute": "hide-on-single-page"
7642
7641
  },
7643
7642
  {
7644
- "name": "page-size-changer",
7643
+ "kind": "field",
7644
+ "name": "pageSizeChanger",
7645
7645
  "type": {
7646
7646
  "text": "boolean"
7647
7647
  },
7648
7648
  "default": "true",
7649
7649
  "description": "Show the page size dropdown",
7650
- "fieldName": "pageSizeChanger",
7651
7650
  "attribute": "page-size-changer"
7652
7651
  },
7653
7652
  {
7654
- "name": "page-size-options",
7653
+ "kind": "field",
7654
+ "name": "pageSizeOptions",
7655
7655
  "type": {
7656
7656
  "text": "string"
7657
7657
  },
7658
7658
  "default": "'10, 20, 50'",
7659
7659
  "description": "Comma-separated page size options",
7660
- "fieldName": "pageSizeOptions",
7661
7660
  "attribute": "page-size-options"
7662
7661
  },
7663
7662
  {
7664
- "name": "total-items",
7663
+ "kind": "field",
7664
+ "name": "totalItems",
7665
7665
  "type": {
7666
7666
  "text": "number"
7667
7667
  },
7668
7668
  "default": "0",
7669
7669
  "description": "Total number of items across all pages",
7670
- "fieldName": "totalItems",
7671
7670
  "attribute": "total-items"
7672
7671
  },
7673
7672
  {
7674
- "name": "boundary-buttons",
7673
+ "kind": "field",
7674
+ "name": "boundaryButtons",
7675
7675
  "type": {
7676
7676
  "text": "boolean"
7677
7677
  },
7678
7678
  "default": "true",
7679
7679
  "description": "Show first and last page buttons",
7680
- "fieldName": "boundaryButtons",
7681
7680
  "attribute": "boundary-buttons"
7682
7681
  },
7683
7682
  {
7684
- "name": "hide-total-count",
7683
+ "kind": "field",
7684
+ "name": "hideTotalCount",
7685
7685
  "type": {
7686
7686
  "text": "boolean"
7687
7687
  },
7688
7688
  "default": "false",
7689
7689
  "description": "Hide the item count display (e.g., \"1-10 of 200\")",
7690
- "fieldName": "hideTotalCount",
7691
7690
  "attribute": "hide-total-count"
7692
7691
  },
7693
7692
  {
7694
- "name": "page-jumper",
7693
+ "kind": "field",
7694
+ "name": "pageJumper",
7695
7695
  "type": {
7696
7696
  "text": "boolean"
7697
7697
  },
7698
7698
  "default": "false",
7699
7699
  "description": "Show the page jumper dropdown. Intended for moderate page counts (under ~100 pages).\nFor large datasets, use a custom `slot=\"jumper\"` with a virtualized or input-based control.",
7700
- "fieldName": "pageJumper",
7701
7700
  "attribute": "page-jumper"
7702
7701
  },
7703
7702
  {
7703
+ "kind": "field",
7704
7704
  "name": "label",
7705
7705
  "type": {
7706
7706
  "text": "string | undefined"
7707
7707
  },
7708
7708
  "description": "Accessible label for the pagination nav landmark",
7709
- "fieldName": "label",
7710
7709
  "attribute": "label"
7711
- }
7712
- ],
7713
- "mixins": [
7714
- {
7715
- "name": "EventEmitterMixin",
7716
- "module": "/src/util/EventEmitterMixin.js"
7717
- },
7718
- {
7719
- "name": "ReadyMixin",
7720
- "module": "/src/util/ReadyMixin.js"
7721
- }
7722
- ],
7723
- "superclass": {
7724
- "name": "LitElement",
7725
- "package": "lit"
7726
- },
7727
- "tagName": "btu-pagination",
7728
- "customElement": true
7729
- }
7730
- ],
7731
- "exports": [
7732
- {
7733
- "kind": "js",
7734
- "name": "default",
7735
- "declaration": {
7736
- "name": "Pagination",
7737
- "module": "src/components/pagination/Pagination.ts"
7738
- }
7739
- },
7740
- {
7741
- "kind": "custom-element-definition",
7742
- "name": "btu-pagination",
7743
- "declaration": {
7744
- "name": "Pagination",
7745
- "module": "src/components/pagination/Pagination.ts"
7746
- }
7747
- }
7748
- ]
7749
- },
7750
- {
7751
- "kind": "javascript-module",
7752
- "path": "src/components/popover/Popover.ts",
7753
- "declarations": [
7754
- {
7755
- "kind": "class",
7756
- "description": "A popover component for displaying rich interactive content anchored to a trigger element.\n\nUses the native HTML Popover API for top-layer rendering, light dismiss (click-outside\nand Escape for click triggers), and focus management. CSS anchor positioning handles\nviewport-aware placement.\n\nFor click triggers (`popover=\"auto\"`), the browser provides:\n- Light dismiss (Escape key and click-outside)\n- Top-layer rendering (no z-index needed)\n- Focus restoration on close\n- `autofocus` support — add `autofocus` to an element inside `slot=\"content\"`\n to have it receive focus when the popover opens",
7757
- "name": "Popover",
7758
- "cssProperties": [
7759
- {
7760
- "description": "Panel background color (default: var(--btu-theme-white); inverted: var(--btu-theme-black))",
7761
- "name": "--popover-color-background"
7762
- },
7763
- {
7764
- "description": "Panel text color (default: oklch(var(--btu-theme-gray-900)); inverted: var(--btu-theme-white))",
7765
- "name": "--popover-color-content"
7766
- },
7767
- {
7768
- "description": "Panel corner radius (default: theme borderRadius.lg)",
7769
- "name": "--popover-border-radius"
7770
- },
7771
- {
7772
- "description": "Edge width, panel and arrow (default: 1px; 0 removes it)",
7773
- "name": "--popover-border-width"
7774
- },
7775
- {
7776
- "description": "Edge color, panel and arrow (default: oklch(var(--btu-theme-gray-200)))",
7777
- "name": "--popover-border-color"
7778
- },
7779
- {
7780
- "description": "Gap between trigger and panel (default: 8px; see btu-popover-offset-{sm|md|lg|xl})",
7781
- "name": "--popover-offset"
7782
- },
7783
- {
7784
- "description": "Width/height of the pointer arrow (default: 8px)",
7785
- "name": "--popover-arrow-size"
7786
- }
7787
- ],
7788
- "slots": [
7789
- {
7790
- "description": "The element that activates the popover",
7791
- "name": "trigger"
7792
7710
  },
7793
- {
7794
- "description": "Rich HTML content displayed inside the popover panel",
7795
- "name": "content"
7796
- }
7797
- ],
7798
- "members": [
7799
7711
  {
7800
7712
  "kind": "field",
7801
- "name": "position",
7713
+ "name": "_initialClassesCaptured",
7802
7714
  "type": {
7803
- "text": "'top' | 'bottom' | 'left' | 'right'"
7715
+ "text": "boolean"
7804
7716
  },
7805
- "default": "'bottom'",
7806
- "description": "Position relative to the trigger element.\nAuto-flips when constrained by the viewport.",
7807
- "attribute": "position"
7717
+ "privacy": "private",
7718
+ "default": "false"
7808
7719
  },
7809
7720
  {
7810
7721
  "kind": "field",
7811
- "name": "trigger",
7722
+ "name": "_parsedPageSizeOptions",
7812
7723
  "type": {
7813
- "text": "'click' | 'hover' | 'focus'"
7724
+ "text": "number[]"
7814
7725
  },
7815
- "default": "'click'",
7816
- "description": "How the popover is activated.\n- 'click': Toggle on click with light dismiss\n- 'hover': Show on mouseenter with delay\n- 'focus': Show on focusin",
7817
- "attribute": "trigger"
7726
+ "privacy": "private",
7727
+ "readonly": true
7818
7728
  },
7819
7729
  {
7820
7730
  "kind": "field",
7821
- "name": "delay",
7731
+ "name": "_totalPages",
7822
7732
  "type": {
7823
7733
  "text": "number"
7824
7734
  },
7825
- "default": "300",
7826
- "description": "Show delay in milliseconds (hover trigger only).",
7827
- "attribute": "delay"
7828
- },
7829
- {
7830
- "kind": "field",
7831
- "name": "offset",
7832
- "type": {
7833
- "text": "PopoverOffset | null"
7834
- },
7835
- "default": "null",
7836
- "description": "Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px).",
7837
- "attribute": "offset"
7735
+ "privacy": "private",
7736
+ "readonly": true
7838
7737
  },
7839
7738
  {
7840
7739
  "kind": "field",
7841
- "name": "noArrow",
7740
+ "name": "_startItem",
7842
7741
  "type": {
7843
- "text": "boolean"
7742
+ "text": "number"
7844
7743
  },
7845
- "default": "false",
7846
- "description": "Hide the arrow pseudo-element.",
7847
- "attribute": "no-arrow"
7744
+ "privacy": "private",
7745
+ "readonly": true
7848
7746
  },
7849
7747
  {
7850
7748
  "kind": "field",
7851
- "name": "inverted",
7749
+ "name": "_endItem",
7852
7750
  "type": {
7853
- "text": "boolean"
7751
+ "text": "number"
7854
7752
  },
7855
- "default": "false",
7856
- "description": "Invert the panel surface (dark on light pages, light on dark pages).\nOpt-in, since the panel holds arbitrary rich content.",
7857
- "attribute": "inverted"
7753
+ "privacy": "private",
7754
+ "readonly": true
7858
7755
  },
7859
7756
  {
7860
- "kind": "field",
7861
- "name": "open",
7862
- "type": {
7863
- "text": "boolean"
7864
- },
7865
- "default": "false",
7866
- "description": "Programmatic open/close state (reflected).",
7867
- "attribute": "open",
7868
- "reflects": true
7757
+ "kind": "method",
7758
+ "name": "_setupSlots",
7759
+ "privacy": "private",
7760
+ "return": {
7761
+ "type": {
7762
+ "text": "void"
7763
+ }
7764
+ }
7869
7765
  },
7870
7766
  {
7871
- "kind": "field",
7872
- "name": "panelLabel",
7873
- "type": {
7874
- "text": "string"
7767
+ "kind": "method",
7768
+ "name": "_goToFirstPage",
7769
+ "privacy": "private",
7770
+ "return": {
7771
+ "type": {
7772
+ "text": "void"
7773
+ }
7875
7774
  },
7876
- "default": "''",
7877
- "description": "Accessible label for the popover panel (applied as aria-label on the dialog).",
7878
- "attribute": "panel-label"
7775
+ "parameters": [
7776
+ {
7777
+ "name": "e",
7778
+ "type": {
7779
+ "text": "Event"
7780
+ }
7781
+ }
7782
+ ]
7879
7783
  },
7880
7784
  {
7881
- "kind": "field",
7882
- "name": "_initialClassesCaptured",
7883
- "type": {
7884
- "text": "boolean"
7885
- },
7785
+ "kind": "method",
7786
+ "name": "_goToPreviousPage",
7886
7787
  "privacy": "private",
7887
- "default": "false"
7888
- },
7889
- {
7890
- "kind": "field",
7891
- "name": "_onTriggerMouseLeave",
7892
- "privacy": "private"
7893
- },
7894
- {
7895
- "kind": "field",
7896
- "name": "_onTriggerFocusIn",
7897
- "privacy": "private"
7898
- },
7899
- {
7900
- "kind": "field",
7901
- "name": "_onTriggerFocusOut",
7902
- "privacy": "private"
7788
+ "return": {
7789
+ "type": {
7790
+ "text": "void"
7791
+ }
7792
+ },
7793
+ "parameters": [
7794
+ {
7795
+ "name": "e",
7796
+ "type": {
7797
+ "text": "Event"
7798
+ }
7799
+ }
7800
+ ]
7903
7801
  },
7904
7802
  {
7905
- "kind": "field",
7906
- "name": "_onPanelMouseEnter",
7907
- "privacy": "private"
7803
+ "kind": "method",
7804
+ "name": "_goToNextPage",
7805
+ "privacy": "private",
7806
+ "return": {
7807
+ "type": {
7808
+ "text": "void"
7809
+ }
7810
+ },
7811
+ "parameters": [
7812
+ {
7813
+ "name": "e",
7814
+ "type": {
7815
+ "text": "Event"
7816
+ }
7817
+ }
7818
+ ]
7908
7819
  },
7909
7820
  {
7910
- "kind": "field",
7911
- "name": "_onPanelMouseLeave",
7912
- "privacy": "private"
7821
+ "kind": "method",
7822
+ "name": "_goToLastPage",
7823
+ "privacy": "private",
7824
+ "return": {
7825
+ "type": {
7826
+ "text": "void"
7827
+ }
7828
+ },
7829
+ "parameters": [
7830
+ {
7831
+ "name": "e",
7832
+ "type": {
7833
+ "text": "Event"
7834
+ }
7835
+ }
7836
+ ]
7913
7837
  },
7914
7838
  {
7915
- "kind": "field",
7916
- "name": "_onNativeToggle",
7917
- "privacy": "private"
7839
+ "kind": "method",
7840
+ "name": "_manageBoundaryFocus",
7841
+ "privacy": "private",
7842
+ "return": {
7843
+ "type": {
7844
+ "text": "void"
7845
+ }
7846
+ },
7847
+ "parameters": [
7848
+ {
7849
+ "name": "clickedButton",
7850
+ "type": {
7851
+ "text": "IconButton"
7852
+ }
7853
+ }
7854
+ ]
7918
7855
  },
7919
7856
  {
7920
- "kind": "field",
7921
- "name": "_onKeyDown",
7922
- "privacy": "private"
7857
+ "kind": "method",
7858
+ "name": "_onBuiltinPageSizeSelect",
7859
+ "privacy": "private",
7860
+ "return": {
7861
+ "type": {
7862
+ "text": "void"
7863
+ }
7864
+ },
7865
+ "parameters": [
7866
+ {
7867
+ "name": "e",
7868
+ "type": {
7869
+ "text": "Event"
7870
+ }
7871
+ }
7872
+ ]
7923
7873
  },
7924
7874
  {
7925
- "kind": "field",
7926
- "name": "_onViewportChange",
7927
- "privacy": "private"
7875
+ "kind": "method",
7876
+ "name": "_onBuiltinJumperSelect",
7877
+ "privacy": "private",
7878
+ "return": {
7879
+ "type": {
7880
+ "text": "void"
7881
+ }
7882
+ },
7883
+ "parameters": [
7884
+ {
7885
+ "name": "e",
7886
+ "type": {
7887
+ "text": "Event"
7888
+ }
7889
+ }
7890
+ ]
7928
7891
  },
7929
7892
  {
7930
7893
  "kind": "method",
@@ -7963,106 +7926,143 @@
7963
7926
  "type": {
7964
7927
  "text": "CustomEvent"
7965
7928
  },
7966
- "description": "Fired when the popover opens",
7967
- "name": "btu-popover-show"
7929
+ "description": "Fired after first render",
7930
+ "name": "btu-pagination-ready"
7968
7931
  },
7969
7932
  {
7970
7933
  "type": {
7971
- "text": "CustomEvent"
7934
+ "text": "CustomEvent<{page: number, pageSize: number}>"
7972
7935
  },
7973
- "description": "Fired when the popover closes",
7974
- "name": "btu-popover-hide"
7936
+ "description": "Fired on page navigation",
7937
+ "name": "btu-pagination-change"
7938
+ },
7939
+ {
7940
+ "type": {
7941
+ "text": "CustomEvent<{page: number, pageSize: number}>"
7942
+ },
7943
+ "description": "Fired on page size change",
7944
+ "name": "btu-pagination-page-size-change"
7975
7945
  }
7976
7946
  ],
7977
7947
  "attributes": [
7978
7948
  {
7979
- "name": "position",
7949
+ "name": "page",
7980
7950
  "type": {
7981
- "text": "'top' | 'bottom' | 'left' | 'right'"
7951
+ "text": "number"
7982
7952
  },
7983
- "default": "'bottom'",
7984
- "description": "Position relative to the trigger element.\nAuto-flips when constrained by the viewport.",
7985
- "fieldName": "position",
7986
- "attribute": "position"
7953
+ "default": "1",
7954
+ "description": "Current page number (1-based)",
7955
+ "fieldName": "page",
7956
+ "attribute": "page"
7987
7957
  },
7988
7958
  {
7989
- "name": "trigger",
7959
+ "name": "page-size",
7990
7960
  "type": {
7991
- "text": "'click' | 'hover' | 'focus'"
7961
+ "text": "number"
7992
7962
  },
7993
- "default": "'click'",
7994
- "description": "How the popover is activated.\n- 'click': Toggle on click with light dismiss\n- 'hover': Show on mouseenter with delay\n- 'focus': Show on focusin",
7995
- "fieldName": "trigger",
7996
- "attribute": "trigger"
7963
+ "default": "0",
7964
+ "description": "Number of items per page",
7965
+ "fieldName": "pageSize",
7966
+ "attribute": "page-size"
7997
7967
  },
7998
7968
  {
7999
- "name": "delay",
7969
+ "name": "disabled",
8000
7970
  "type": {
8001
- "text": "number"
7971
+ "text": "boolean"
8002
7972
  },
8003
- "default": "300",
8004
- "description": "Show delay in milliseconds (hover trigger only).",
8005
- "fieldName": "delay",
8006
- "attribute": "delay"
7973
+ "default": "false",
7974
+ "description": "Disables all pagination controls",
7975
+ "fieldName": "disabled",
7976
+ "attribute": "disabled"
8007
7977
  },
8008
7978
  {
8009
- "name": "offset",
7979
+ "name": "loading",
8010
7980
  "type": {
8011
- "text": "PopoverOffset | null"
7981
+ "text": "boolean"
8012
7982
  },
8013
- "default": "null",
8014
- "description": "Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px).",
8015
- "fieldName": "offset",
8016
- "attribute": "offset"
7983
+ "default": "false",
7984
+ "description": "Shows loading spinner and dims controls",
7985
+ "fieldName": "loading",
7986
+ "attribute": "loading"
8017
7987
  },
8018
7988
  {
8019
- "name": "noArrow",
7989
+ "name": "hide-on-single-page",
8020
7990
  "type": {
8021
7991
  "text": "boolean"
8022
7992
  },
8023
- "default": "false",
8024
- "description": "Hide the arrow pseudo-element.",
8025
- "fieldName": "noArrow"
7993
+ "default": "true",
7994
+ "description": "Hide controls when there is only one page",
7995
+ "fieldName": "hideOnSinglePage",
7996
+ "attribute": "hide-on-single-page"
8026
7997
  },
8027
7998
  {
8028
- "name": "inverted",
7999
+ "name": "page-size-changer",
8029
8000
  "type": {
8030
8001
  "text": "boolean"
8031
8002
  },
8032
- "default": "false",
8033
- "description": "Invert the panel surface (dark on light pages, light on dark pages).\nOpt-in, since the panel holds arbitrary rich content.",
8034
- "fieldName": "inverted",
8035
- "attribute": "inverted"
8003
+ "default": "true",
8004
+ "description": "Show the page size dropdown",
8005
+ "fieldName": "pageSizeChanger",
8006
+ "attribute": "page-size-changer"
8036
8007
  },
8037
8008
  {
8038
- "name": "open",
8009
+ "name": "page-size-options",
8010
+ "type": {
8011
+ "text": "string"
8012
+ },
8013
+ "default": "'10, 20, 50'",
8014
+ "description": "Comma-separated page size options",
8015
+ "fieldName": "pageSizeOptions",
8016
+ "attribute": "page-size-options"
8017
+ },
8018
+ {
8019
+ "name": "total-items",
8020
+ "type": {
8021
+ "text": "number"
8022
+ },
8023
+ "default": "0",
8024
+ "description": "Total number of items across all pages",
8025
+ "fieldName": "totalItems",
8026
+ "attribute": "total-items"
8027
+ },
8028
+ {
8029
+ "name": "boundary-buttons",
8039
8030
  "type": {
8040
8031
  "text": "boolean"
8041
8032
  },
8042
- "default": "false",
8043
- "description": "Programmatic open/close state (reflected).",
8044
- "fieldName": "open",
8045
- "attribute": "open"
8033
+ "default": "true",
8034
+ "description": "Show first and last page buttons",
8035
+ "fieldName": "boundaryButtons",
8036
+ "attribute": "boundary-buttons"
8046
8037
  },
8047
8038
  {
8048
- "name": "panel-label",
8039
+ "name": "hide-total-count",
8049
8040
  "type": {
8050
- "text": "string"
8041
+ "text": "boolean"
8051
8042
  },
8052
- "default": "''",
8053
- "description": "Accessible label for the popover panel (applied as aria-label on the dialog).",
8054
- "fieldName": "panelLabel",
8055
- "attribute": "panel-label"
8043
+ "default": "false",
8044
+ "description": "Hide the item count display (e.g., \"1-10 of 200\")",
8045
+ "fieldName": "hideTotalCount",
8046
+ "attribute": "hide-total-count"
8056
8047
  },
8057
8048
  {
8058
- "name": "no-arrow",
8049
+ "name": "page-jumper",
8059
8050
  "type": {
8060
8051
  "text": "boolean"
8061
8052
  },
8062
8053
  "default": "false",
8063
- "description": "Hide the arrow pseudo-element.",
8064
- "attribute": "noArrow",
8065
- "fieldName": "noArrow"
8054
+ "description": "Show the page jumper dropdown. Intended for moderate page counts (under ~100 pages).\nFor large datasets, use a custom `slot=\"jumper\"` with a virtualized or input-based control.",
8055
+ "fieldName": "pageJumper",
8056
+ "attribute": "page-jumper"
8057
+ },
8058
+ {
8059
+ "name": "label",
8060
+ "type": {
8061
+ "text": "string | undefined"
8062
+ },
8063
+ "description": "Accessible label for the pagination nav landmark",
8064
+ "fieldName": "label",
8065
+ "attribute": "label"
8066
8066
  }
8067
8067
  ],
8068
8068
  "mixins": [
@@ -8079,7 +8079,7 @@
8079
8079
  "name": "LitElement",
8080
8080
  "package": "lit"
8081
8081
  },
8082
- "tagName": "btu-popover",
8082
+ "tagName": "btu-pagination",
8083
8083
  "customElement": true
8084
8084
  }
8085
8085
  ],
@@ -8088,16 +8088,16 @@
8088
8088
  "kind": "js",
8089
8089
  "name": "default",
8090
8090
  "declaration": {
8091
- "name": "Popover",
8092
- "module": "src/components/popover/Popover.ts"
8091
+ "name": "Pagination",
8092
+ "module": "src/components/pagination/Pagination.ts"
8093
8093
  }
8094
8094
  },
8095
8095
  {
8096
8096
  "kind": "custom-element-definition",
8097
- "name": "btu-popover",
8097
+ "name": "btu-pagination",
8098
8098
  "declaration": {
8099
- "name": "Popover",
8100
- "module": "src/components/popover/Popover.ts"
8099
+ "name": "Pagination",
8100
+ "module": "src/components/pagination/Pagination.ts"
8101
8101
  }
8102
8102
  }
8103
8103
  ]