@pine-ds/core 4.6.0 → 4.7.0

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 (74) hide show
  1. package/components/pds-combobox.js +1 -1
  2. package/components/pds-drawer.js +1 -1
  3. package/components/pds-dropdown-menu.js +1 -1
  4. package/components/pds-modal2.js +1 -1
  5. package/components/pds-multiselect.js +1 -1
  6. package/components/pds-popover.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/pds-combobox.cjs.entry.js +33 -3
  9. package/dist/cjs/pds-drawer.cjs.entry.js +23 -10
  10. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +9 -5
  11. package/dist/cjs/pds-modal.cjs.entry.js +116 -31
  12. package/dist/cjs/pds-multiselect.cjs.entry.js +6 -5
  13. package/dist/cjs/pds-popover.cjs.entry.js +170 -26
  14. package/dist/cjs/pine-core.cjs.js +1 -1
  15. package/dist/collection/components/pds-combobox/pds-combobox.js +33 -3
  16. package/dist/collection/components/pds-drawer/pds-drawer.css +4 -1
  17. package/dist/collection/components/pds-drawer/pds-drawer.js +54 -17
  18. package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +6 -1
  19. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +15 -5
  20. package/dist/collection/components/pds-modal/pds-modal.js +117 -32
  21. package/dist/collection/components/pds-multiselect/pds-multiselect.js +8 -7
  22. package/dist/collection/components/pds-popover/pds-popover.js +171 -27
  23. package/dist/docs.json +42 -7
  24. package/dist/esm/loader.js +1 -1
  25. package/dist/esm/pds-combobox.entry.js +33 -3
  26. package/dist/esm/pds-drawer.entry.js +23 -10
  27. package/dist/esm/pds-dropdown-menu.entry.js +9 -5
  28. package/dist/esm/pds-modal.entry.js +116 -31
  29. package/dist/esm/pds-multiselect.entry.js +6 -5
  30. package/dist/esm/pds-popover.entry.js +171 -27
  31. package/dist/esm/pine-core.js +1 -1
  32. package/dist/esm-es5/loader.js +1 -1
  33. package/dist/esm-es5/pds-combobox.entry.js +1 -1
  34. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  35. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  36. package/dist/esm-es5/pds-modal.entry.js +1 -1
  37. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  38. package/dist/esm-es5/pds-popover.entry.js +1 -1
  39. package/dist/esm-es5/pine-core.js +1 -1
  40. package/dist/pine-core/p-153ba77b.entry.js +1 -0
  41. package/dist/pine-core/p-21fe6ee1.system.entry.js +1 -0
  42. package/dist/pine-core/p-24fbbb74.system.entry.js +1 -0
  43. package/dist/pine-core/{p-df539c42.system.entry.js → p-5a10784e.system.entry.js} +1 -1
  44. package/dist/pine-core/p-74a05bcc.entry.js +1 -0
  45. package/dist/pine-core/p-92ae6082.entry.js +1 -0
  46. package/dist/pine-core/p-945fb0b1.entry.js +1 -0
  47. package/dist/pine-core/p-CuSNnuFu.system.js +1 -1
  48. package/dist/pine-core/p-a0344e30.entry.js +2 -0
  49. package/dist/pine-core/p-a787b34a.system.entry.js +1 -0
  50. package/dist/pine-core/{p-646afbca.system.entry.js → p-b60ac7eb.system.entry.js} +1 -1
  51. package/dist/pine-core/p-bf5887e8.system.entry.js +1 -0
  52. package/dist/pine-core/p-e21ff692.entry.js +1 -0
  53. package/dist/pine-core/pine-core.esm.js +1 -1
  54. package/dist/types/components/pds-combobox/pds-combobox.d.ts +1 -0
  55. package/dist/types/components/pds-drawer/pds-drawer.d.ts +21 -9
  56. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +1 -0
  57. package/dist/types/components/pds-modal/pds-modal.d.ts +10 -3
  58. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +2 -1
  59. package/dist/types/components/pds-popover/pds-popover.d.ts +31 -1
  60. package/dist/types/components.d.ts +45 -30
  61. package/dist/vscode.html-data.json +11 -4
  62. package/hydrate/index.js +369 -90
  63. package/hydrate/index.mjs +369 -90
  64. package/package.json +2 -2
  65. package/dist/pine-core/p-01c9b8f3.entry.js +0 -1
  66. package/dist/pine-core/p-3c27088f.system.entry.js +0 -1
  67. package/dist/pine-core/p-73eb47fa.entry.js +0 -1
  68. package/dist/pine-core/p-7f367db4.system.entry.js +0 -1
  69. package/dist/pine-core/p-9a0083dd.system.entry.js +0 -1
  70. package/dist/pine-core/p-a3735199.entry.js +0 -1
  71. package/dist/pine-core/p-da103a54.system.entry.js +0 -1
  72. package/dist/pine-core/p-ec5428fb.entry.js +0 -1
  73. package/dist/pine-core/p-ed4b979e.entry.js +0 -1
  74. package/dist/pine-core/p-f1f17940.entry.js +0 -2
@@ -1430,12 +1430,13 @@ export namespace Components {
1430
1430
  "vertical": boolean;
1431
1431
  }
1432
1432
  /**
1433
- * A non-modal side panel composed from `pds-modal`.
1434
- * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
1435
- * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
1436
- * `pds-modal` internally with `disableTopLayer` always on and its backdrop
1437
- * suppressed, and adds the edge, width and dismiss behavior a side panel
1438
- * needs on top. It does not reimplement focus, Escape or dialog semantics —
1433
+ * A side panel composed from `pds-modal`, non-modal by default.
1434
+ * By default, unlike `pds-modal`, the page stays interactive while a drawer
1435
+ * is open: no dimming, no blur, no scroll lock, no click blocking.
1436
+ * `pds-drawer` renders a `pds-modal` internally with `disableTopLayer` on and
1437
+ * its backdrop suppressed, and adds the edge, width and dismiss behavior a
1438
+ * side panel needs on top. With `modal`, it opens that `pds-modal` in the top
1439
+ * layer instead and keeps its backdrop. It does not reimplement focus, Escape or dialog semantics —
1439
1440
  * those come from `pds-modal` unchanged.
1440
1441
  * @lightDom renders-markup
1441
1442
  */
@@ -1445,15 +1446,20 @@ export namespace Components {
1445
1446
  */
1446
1447
  "componentId": string;
1447
1448
  /**
1448
- * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance.
1449
+ * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance. A `modal` drawer ignores `none`: the page behind it is inert, so focus starts in the drawer.
1449
1450
  * @default 'auto'
1450
1451
  */
1451
1452
  "initialFocus": 'auto' | 'none';
1452
1453
  /**
1453
- * Whether the drawer can be dismissed with a pointerdown outside it. Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
1454
+ * Whether the drawer can be dismissed with a pointerdown outside it (in a `modal` drawer, a click on its backdrop). Replaces `pds-modal`'s `backdropDismiss`. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
1454
1455
  * @default true
1455
1456
  */
1456
1457
  "lightDismiss": boolean;
1458
+ /**
1459
+ * Whether the drawer is modal. A modal drawer dims the page behind it with a backdrop, makes the page inert, and keeps focus inside the drawer, like `pds-modal`. Use it for a task the page should wait on. Leave it off for a panel people work alongside the page. Read when the drawer opens; changing it while the drawer is open is not supported.
1460
+ * @default false
1461
+ */
1462
+ "modal": boolean;
1457
1463
  /**
1458
1464
  * Whether the drawer is open
1459
1465
  * @default false
@@ -1838,7 +1844,7 @@ export namespace Components {
1838
1844
  */
1839
1845
  interface PdsModal {
1840
1846
  /**
1841
- * Whether the modal can be dismissed by clicking the backdrop
1847
+ * Whether the modal can be dismissed by clicking the backdrop, pressing Escape, or the browser's own close request (such as a back gesture)
1842
1848
  * @default true
1843
1849
  */
1844
1850
  "backdropDismiss": boolean;
@@ -3254,12 +3260,13 @@ declare global {
3254
3260
  "pdsDrawerClose": void;
3255
3261
  }
3256
3262
  /**
3257
- * A non-modal side panel composed from `pds-modal`.
3258
- * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
3259
- * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
3260
- * `pds-modal` internally with `disableTopLayer` always on and its backdrop
3261
- * suppressed, and adds the edge, width and dismiss behavior a side panel
3262
- * needs on top. It does not reimplement focus, Escape or dialog semantics —
3263
+ * A side panel composed from `pds-modal`, non-modal by default.
3264
+ * By default, unlike `pds-modal`, the page stays interactive while a drawer
3265
+ * is open: no dimming, no blur, no scroll lock, no click blocking.
3266
+ * `pds-drawer` renders a `pds-modal` internally with `disableTopLayer` on and
3267
+ * its backdrop suppressed, and adds the edge, width and dismiss behavior a
3268
+ * side panel needs on top. With `modal`, it opens that `pds-modal` in the top
3269
+ * layer instead and keeps its backdrop. It does not reimplement focus, Escape or dialog semantics —
3263
3270
  * those come from `pds-modal` unchanged.
3264
3271
  * @lightDom renders-markup
3265
3272
  */
@@ -5284,12 +5291,13 @@ declare namespace LocalJSX {
5284
5291
  "vertical"?: boolean;
5285
5292
  }
5286
5293
  /**
5287
- * A non-modal side panel composed from `pds-modal`.
5288
- * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
5289
- * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
5290
- * `pds-modal` internally with `disableTopLayer` always on and its backdrop
5291
- * suppressed, and adds the edge, width and dismiss behavior a side panel
5292
- * needs on top. It does not reimplement focus, Escape or dialog semantics —
5294
+ * A side panel composed from `pds-modal`, non-modal by default.
5295
+ * By default, unlike `pds-modal`, the page stays interactive while a drawer
5296
+ * is open: no dimming, no blur, no scroll lock, no click blocking.
5297
+ * `pds-drawer` renders a `pds-modal` internally with `disableTopLayer` on and
5298
+ * its backdrop suppressed, and adds the edge, width and dismiss behavior a
5299
+ * side panel needs on top. With `modal`, it opens that `pds-modal` in the top
5300
+ * layer instead and keeps its backdrop. It does not reimplement focus, Escape or dialog semantics —
5293
5301
  * those come from `pds-modal` unchanged.
5294
5302
  * @lightDom renders-markup
5295
5303
  */
@@ -5299,15 +5307,20 @@ declare namespace LocalJSX {
5299
5307
  */
5300
5308
  "componentId"?: string;
5301
5309
  /**
5302
- * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance.
5310
+ * Whether to move focus into the drawer when it opens. `auto` is right for a drawer opened by a direct user action (a click, a deep link the user just navigated to). Set to `none` for a drawer that can open from a background event while the user is mid-task elsewhere on the page — moving focus there would interrupt them, and the page stays live under a non-modal drawer, so it is a genuine data-entry risk, not just an annoyance. A `modal` drawer ignores `none`: the page behind it is inert, so focus starts in the drawer.
5303
5311
  * @default 'auto'
5304
5312
  */
5305
5313
  "initialFocus"?: 'auto' | 'none';
5306
5314
  /**
5307
- * Whether the drawer can be dismissed with a pointerdown outside it. Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
5315
+ * Whether the drawer can be dismissed with a pointerdown outside it (in a `modal` drawer, a click on its backdrop). Replaces `pds-modal`'s `backdropDismiss`. This also gates Escape, matching how `backdropDismiss` gates Escape on `pds-modal` today: setting this to `false` means the close button is the only way out. A trigger outside the drawer should only ever set `open` to `true` and leave closing to the drawer itself. A toggle-style trigger (`open = !open`) fights light dismiss: clicking it while open closes the drawer on `pointerdown`, then the trigger's own click handler re-opens it.
5308
5316
  * @default true
5309
5317
  */
5310
5318
  "lightDismiss"?: boolean;
5319
+ /**
5320
+ * Whether the drawer is modal. A modal drawer dims the page behind it with a backdrop, makes the page inert, and keeps focus inside the drawer, like `pds-modal`. Use it for a task the page should wait on. Leave it off for a panel people work alongside the page. Read when the drawer opens; changing it while the drawer is open is not supported.
5321
+ * @default false
5322
+ */
5323
+ "modal"?: boolean;
5311
5324
  /**
5312
5325
  * Emitted when the drawer is closed
5313
5326
  */
@@ -5724,7 +5737,7 @@ declare namespace LocalJSX {
5724
5737
  */
5725
5738
  interface PdsModal {
5726
5739
  /**
5727
- * Whether the modal can be dismissed by clicking the backdrop
5740
+ * Whether the modal can be dismissed by clicking the backdrop, pressing Escape, or the browser's own close request (such as a back gesture)
5728
5741
  * @default true
5729
5742
  */
5730
5743
  "backdropDismiss"?: boolean;
@@ -7200,6 +7213,7 @@ declare namespace LocalJSX {
7200
7213
  "side": 'start' | 'end';
7201
7214
  "size": 'sm' | 'md';
7202
7215
  "scrollable": boolean;
7216
+ "modal": boolean;
7203
7217
  "lightDismiss": boolean;
7204
7218
  "initialFocus": 'auto' | 'none';
7205
7219
  }
@@ -7650,12 +7664,13 @@ declare module "@stencil/core" {
7650
7664
  "pds-datepicker": LocalJSX.IntrinsicElements["pds-datepicker"] & JSXBase.HTMLAttributes<HTMLPdsDatepickerElement>;
7651
7665
  "pds-divider": LocalJSX.IntrinsicElements["pds-divider"] & JSXBase.HTMLAttributes<HTMLPdsDividerElement>;
7652
7666
  /**
7653
- * A non-modal side panel composed from `pds-modal`.
7654
- * Unlike `pds-modal`, the page stays interactive while a drawer is open: no
7655
- * dimming, no blur, no scroll lock, no click blocking. `pds-drawer` renders a
7656
- * `pds-modal` internally with `disableTopLayer` always on and its backdrop
7657
- * suppressed, and adds the edge, width and dismiss behavior a side panel
7658
- * needs on top. It does not reimplement focus, Escape or dialog semantics —
7667
+ * A side panel composed from `pds-modal`, non-modal by default.
7668
+ * By default, unlike `pds-modal`, the page stays interactive while a drawer
7669
+ * is open: no dimming, no blur, no scroll lock, no click blocking.
7670
+ * `pds-drawer` renders a `pds-modal` internally with `disableTopLayer` on and
7671
+ * its backdrop suppressed, and adds the edge, width and dismiss behavior a
7672
+ * side panel needs on top. With `modal`, it opens that `pds-modal` in the top
7673
+ * layer instead and keeps its backdrop. It does not reimplement focus, Escape or dialog semantics —
7659
7674
  * those come from `pds-modal` unchanged.
7660
7675
  * @lightDom renders-markup
7661
7676
  */
@@ -8174,7 +8174,7 @@
8174
8174
  "name": "pds-drawer",
8175
8175
  "description": {
8176
8176
  "kind": "markdown",
8177
- "value": "A non-modal side panel. Unlike `pds-modal`, the page stays interactive while a drawer is open — no dimming, no blur, no scroll lock, no click blocking.\n\n**Events:**\n- `pdsDrawerClose` - Emitted when the drawer is closed\n- `pdsDrawerOpen` - Emitted when the drawer is opened"
8177
+ "value": "A side panel. By default it's non-modal: unlike `pds-modal`, the page stays interactive while a drawer is open — no dimming, no blur, no scroll lock, no click blocking. Add `modal` for a drawer the page should wait on (see [Modal](#modal)).\n\n**Events:**\n- `pdsDrawerClose` - Emitted when the drawer is closed\n- `pdsDrawerOpen` - Emitted when the drawer is opened"
8178
8178
  },
8179
8179
  "attributes": [
8180
8180
  {
@@ -8188,7 +8188,7 @@
8188
8188
  "name": "initial-focus",
8189
8189
  "description": {
8190
8190
  "kind": "markdown",
8191
- "value": "Whether to move focus into the drawer when it opens. `auto` is right for\na drawer opened by a direct user action (a click, a deep link the user\njust navigated to). Set to `none` for a drawer that can open from a\nbackground event while the user is mid-task elsewhere on the page —\nmoving focus there would interrupt them, and the page stays live under\na non-modal drawer, so it is a genuine data-entry risk, not just an\nannoyance.\n\n**Type:** `\"auto\" | \"none\"`\n\n**Default:** `'auto'`"
8191
+ "value": "Whether to move focus into the drawer when it opens. `auto` is right for\na drawer opened by a direct user action (a click, a deep link the user\njust navigated to). Set to `none` for a drawer that can open from a\nbackground event while the user is mid-task elsewhere on the page —\nmoving focus there would interrupt them, and the page stays live under\na non-modal drawer, so it is a genuine data-entry risk, not just an\nannoyance. A `modal` drawer ignores `none`: the page behind it is inert,\nso focus starts in the drawer.\n\n**Type:** `\"auto\" | \"none\"`\n\n**Default:** `'auto'`"
8192
8192
  },
8193
8193
  "values": [
8194
8194
  {
@@ -8203,7 +8203,14 @@
8203
8203
  "name": "light-dismiss",
8204
8204
  "description": {
8205
8205
  "kind": "markdown",
8206
- "value": "Whether the drawer can be dismissed with a pointerdown outside it.\nReplaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click.\nThis also gates Escape, matching how `backdropDismiss` gates Escape on\n`pds-modal` today: setting this to `false` means the close button is the\nonly way out.\n\nA trigger outside the drawer should only ever set `open` to `true` and\nleave closing to the drawer itself. A toggle-style trigger (`open =\n!open`) fights light dismiss: clicking it while open closes the drawer\non `pointerdown`, then the trigger's own click handler re-opens it.\n\n**Default:** `true`"
8206
+ "value": "Whether the drawer can be dismissed with a pointerdown outside it (in a\n`modal` drawer, a click on its backdrop).\nReplaces `pds-modal`'s `backdropDismiss`.\nThis also gates Escape, matching how `backdropDismiss` gates Escape on\n`pds-modal` today: setting this to `false` means the close button is the\nonly way out.\n\nA trigger outside the drawer should only ever set `open` to `true` and\nleave closing to the drawer itself. A toggle-style trigger (`open =\n!open`) fights light dismiss: clicking it while open closes the drawer\non `pointerdown`, then the trigger's own click handler re-opens it.\n\n**Default:** `true`"
8207
+ }
8208
+ },
8209
+ {
8210
+ "name": "modal",
8211
+ "description": {
8212
+ "kind": "markdown",
8213
+ "value": "Whether the drawer is modal. A modal drawer dims the page behind it with a\nbackdrop, makes the page inert, and keeps focus inside the drawer, like\n`pds-modal`. Use it for a task the page should wait on. Leave it off for a\npanel people work alongside the page. Read when the drawer opens; changing\nit while the drawer is open is not supported.\n\n**Default:** `false`"
8207
8214
  }
8208
8215
  },
8209
8216
  {
@@ -9062,7 +9069,7 @@
9062
9069
  "name": "backdrop-dismiss",
9063
9070
  "description": {
9064
9071
  "kind": "markdown",
9065
- "value": "Whether the modal can be dismissed by clicking the backdrop\n\n**Default:** `true`"
9072
+ "value": "Whether the modal can be dismissed by clicking the backdrop, pressing Escape, or the browser's\nown close request (such as a back gesture)\n\n**Default:** `true`"
9066
9073
  }
9067
9074
  },
9068
9075
  {