@vanelsas/baredom 3.6.0 → 3.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 (117) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +2 -2
  3. package/custom-elements.json +200 -0
  4. package/dist/baredom.d.ts +2 -0
  5. package/dist/base.js +603 -584
  6. package/dist/integrity.json +111 -109
  7. package/dist/x-alert.js +17 -17
  8. package/dist/x-avatar-group.js +9 -9
  9. package/dist/x-avatar.js +14 -14
  10. package/dist/x-badge.js +8 -8
  11. package/dist/x-bento-grid.js +5 -5
  12. package/dist/x-bento-item.js +4 -4
  13. package/dist/x-breadcrumbs.js +13 -13
  14. package/dist/x-button.js +1 -1
  15. package/dist/x-calendar.js +39 -39
  16. package/dist/x-cancel-dialogue.js +13 -13
  17. package/dist/x-card.js +7 -7
  18. package/dist/x-carousel.js +33 -33
  19. package/dist/x-chart.js +45 -45
  20. package/dist/x-checkbox.js +1 -1
  21. package/dist/x-chip.js +1 -1
  22. package/dist/x-code.js +27 -27
  23. package/dist/x-collapse.js +9 -9
  24. package/dist/x-color-picker.js +44 -44
  25. package/dist/x-combobox.js +33 -33
  26. package/dist/x-command-palette.js +28 -28
  27. package/dist/x-confetti.js +23 -23
  28. package/dist/x-container.js +5 -5
  29. package/dist/x-context-menu.js +19 -19
  30. package/dist/x-copy.js +1 -1
  31. package/dist/x-currency-field.js +22 -22
  32. package/dist/x-date-picker.js +42 -42
  33. package/dist/x-divider.js +9 -10
  34. package/dist/x-drag-panel.d.ts +45 -0
  35. package/dist/x-drag-panel.js +36 -0
  36. package/dist/x-drawer.js +11 -11
  37. package/dist/x-drop-zone.d.ts +49 -0
  38. package/dist/x-drop-zone.js +11 -0
  39. package/dist/x-dropdown.js +12 -12
  40. package/dist/x-fieldset.js +5 -5
  41. package/dist/x-file-download.js +6 -6
  42. package/dist/x-file-upload.js +25 -25
  43. package/dist/x-floating-panel.js +23 -24
  44. package/dist/x-form-field.js +15 -15
  45. package/dist/x-form.js +10 -10
  46. package/dist/x-gaussian-blur.js +13 -13
  47. package/dist/x-grid.js +6 -6
  48. package/dist/x-i18n-provider.js +7 -7
  49. package/dist/x-i18n.js +4 -4
  50. package/dist/x-icon.js +7 -7
  51. package/dist/x-image.js +17 -17
  52. package/dist/x-kbd.js +11 -11
  53. package/dist/x-kinetic-canvas.js +24 -24
  54. package/dist/x-kinetic-font.js +25 -25
  55. package/dist/x-kinetic-typography.js +32 -32
  56. package/dist/x-liquid-dock.js +31 -31
  57. package/dist/x-liquid-fill.js +41 -41
  58. package/dist/x-liquid-glass.js +35 -35
  59. package/dist/x-menu-item.js +8 -8
  60. package/dist/x-menu.js +9 -9
  61. package/dist/x-metaball-cursor.js +23 -23
  62. package/dist/x-modal.js +12 -12
  63. package/dist/x-morph-stack.js +37 -37
  64. package/dist/x-multi-combobox.js +39 -39
  65. package/dist/x-navbar.js +14 -14
  66. package/dist/x-neural-glow.js +29 -29
  67. package/dist/x-notification-center.js +9 -9
  68. package/dist/x-organic-divider.js +17 -17
  69. package/dist/x-organic-progress.js +34 -34
  70. package/dist/x-organic-shape.js +14 -14
  71. package/dist/x-otp-input.js +21 -21
  72. package/dist/x-pagination.js +14 -14
  73. package/dist/x-particle-button.js +44 -44
  74. package/dist/x-popover.js +26 -26
  75. package/dist/x-progress-circle.js +8 -8
  76. package/dist/x-progress.js +7 -7
  77. package/dist/x-proximity-list.js +20 -20
  78. package/dist/x-radio.js +12 -12
  79. package/dist/x-range-slider.js +28 -28
  80. package/dist/x-rating.js +24 -24
  81. package/dist/x-ripple-effect.js +9 -9
  82. package/dist/x-scroll-parallax.js +17 -17
  83. package/dist/x-scroll-stack.js +16 -16
  84. package/dist/x-scroll-story.js +31 -31
  85. package/dist/x-scroll-timeline.js +46 -46
  86. package/dist/x-scroll.js +36 -36
  87. package/dist/x-search-field.js +1 -1
  88. package/dist/x-select.js +1 -1
  89. package/dist/x-sidebar.js +15 -15
  90. package/dist/x-skeleton-group.js +12 -12
  91. package/dist/x-skeleton.js +1 -1
  92. package/dist/x-slider.js +16 -16
  93. package/dist/x-soft-body.js +17 -17
  94. package/dist/x-spacer.js +4 -4
  95. package/dist/x-spinner.js +4 -4
  96. package/dist/x-splash.js +12 -12
  97. package/dist/x-split-pane.js +14 -14
  98. package/dist/x-spotlight-card.js +11 -11
  99. package/dist/x-stat.js +10 -10
  100. package/dist/x-stepper.js +13 -13
  101. package/dist/x-switch.js +11 -11
  102. package/dist/x-tab.js +6 -6
  103. package/dist/x-table-cell.js +19 -19
  104. package/dist/x-table-row.js +8 -8
  105. package/dist/x-table.js +13 -13
  106. package/dist/x-tabs.js +11 -11
  107. package/dist/x-text-area.js +19 -19
  108. package/dist/x-theme.js +25 -25
  109. package/dist/x-timeline-item.js +20 -20
  110. package/dist/x-timeline.js +8 -8
  111. package/dist/x-toast.js +21 -21
  112. package/dist/x-toaster.js +7 -7
  113. package/dist/x-tooltip.js +12 -12
  114. package/dist/x-trace-history.js +125 -124
  115. package/dist/x-typography.js +6 -6
  116. package/dist/x-welcome-tour.js +63 -63
  117. package/package.json +11 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  All notable changes to BareDOM will be documented in this file.
4
4
 
5
+ ## [3.7.0] - 2026-07-30
6
+
7
+ Two new components that work as a pair: a panel the user can pick up and a region that accepts it. Together they cover kanban boards, sortable lists, and any interface where something is moved from one place to another.
8
+
9
+ ### Added
10
+
11
+ - **`x-drag-panel`** — a surface the user picks up with a pointer or the keyboard, with a grip handle over a body slot. Built on pointer events rather than the HTML5 drag-and-drop API, which never fires from touch input on iOS or Android, so it works from 320px up. `grab` chooses whether the whole card is a drag target or only the handle bar; in surface mode a touch drag arms after a short press and cancels if the finger travels first, so swiping over a card still scrolls the board. Dragging toward the edge of a scrollable ancestor auto-scrolls it, resolving the vertical and horizontal scrollers independently so a board that scrolls sideways with columns that scroll down works in both axes at once. Emits `x-drag-panel-drag-start` and `x-drag-panel-drag-cancel`.
12
+
13
+ - **`x-drop-zone`** — a region that senses panels passing over it, renders an insertion caret where one would land, and reports the drop. Acceptance is declarative: `accepts` matches the panel's `kind` and `max` caps capacity, so a full or incompatible zone shows a reject cue during the hover rather than silently ignoring the drop. `animate-moves` animates children into place whenever the child list changes, which covers drop confirmations, another client's change arriving over a websocket, and filter toggles with one mechanism. Emits `x-drop-zone-enter`, `x-drop-zone-leave`, and `x-drop-zone-drop`.
14
+
15
+ ### Notes
16
+
17
+ - **Neither component moves a node.** A drop is a request, not a fact — an app may validate it locally and refuse, queue it offline, or send it to a server that reorders differently. The components sense and report; the application owns the landing. `x-drop-zone-drop` carries `{ kind, value, from, to, index, panel }`, where `value` identifies the panel and `from` / `to` are the two zones' `value`s, so a server-backed handler works entirely in opaque strings and never holds an element across a round trip. `from` is `null` when the panel came from outside any zone, distinct from `""` for a zone with no `value`, and is typed `string | null` so the check is not optional.
18
+
19
+ - **For moves that need confirming**, `zone.reserve(panel, index)` marks the in-flight window and `zone.release()` clears it. The panel renders an empty dashed footprint that keeps its box and the zone renders a reserved caret, so nothing in the layout moves until the answer arrives — every real reflow happens once, when the truth does. Nothing times out: a stalled move stays visible and keyboard-reachable rather than becoming a lost card. The underlying `pending` and `pending-index` attributes remain author-settable for apps that prefer to drive them directly.
20
+
21
+ ### Accessibility
22
+
23
+ - The full interaction is keyboard-operable, which WCAG 2.2 SC 2.5.7 (Dragging Movements) requires of any drag: <kbd>Space</kbd> picks a panel up from its handle, arrows cycle the accepting zones in document order and scroll each into view, <kbd>Enter</kbd> drops, <kbd>Esc</kbd> cancels. Pointer and keyboard produce the same `x-drop-zone-drop` detail, so a consumer handles one path rather than two.
24
+
25
+ - Focus moves to the destination zone on commit rather than riding the panel, because a confirmation re-render will often replace the panel element and focus would fall to `<body>`. Each component narrates the events it owns into a visually hidden live region; the panel's is created lazily at pickup so a fifty-card board carries no idle `aria-live` nodes. Whether a move succeeded is read back from the DOM rather than assumed, so a server that refused is announced honestly.
26
+
27
+ - Auto-scroll is deliberately **not** disabled under `prefers-reduced-motion` — it is function rather than decoration, and a board deeper than the viewport would otherwise be unusable for the people relying on that setting. The lift transition, caret pulse, and `animate-moves` all are.
28
+
29
+ - The framework adapters gain generated `x-drag-panel` and `x-drop-zone` wrappers. They version on their own cadence — see [`docs/RELEASING.md`](docs/RELEASING.md) — so releasing them is a separate step.
30
+
5
31
  ## [3.6.0] - 2026-07-27
6
32
 
7
33
  One new component: a floating, draggable container for inspectors, tool palettes, mini-players, and any persistent surface the user should be able to move out of the way.
package/README.md CHANGED
@@ -103,14 +103,14 @@ All adapters are auto-generated from the same Custom Elements Manifest, so addin
103
103
 
104
104
  ## Components
105
105
 
106
- **104 UI web components across 11 categories** — from foundational UI controls to morphing animations, organic effects, and scroll-driven storytelling.
106
+ **106 UI web components across 11 categories** — from foundational UI controls to morphing animations, organic effects, and scroll-driven storytelling.
107
107
 
108
108
  | Category | Count | Examples |
109
109
  |----------|------:|----------|
110
110
  | **Form** | 23 | Button · Checkbox · Slider · Combobox · OTP Input · Color Picker |
111
111
  | **Feedback** | 11 | Alert · Toast · Spinner · Progress · Skeleton · Notification Center |
112
112
  | **Navigation** | 8 | Navbar · Sidebar · Breadcrumbs · Tabs · Pagination · Menu |
113
- | **Layout** | 10 | Card · Grid · Bento Grid · Split Pane · Container · Collapse |
113
+ | **Layout** | 12 | Card · Grid · Bento Grid · Split Pane · Drag Panel · Drop Zone |
114
114
  | **Data** | 11 | Avatar · Table · Chart · Timeline · Calendar · Stat |
115
115
  | **Overlay** | 10 | Modal · Drawer · Popover · Tooltip · Floating Panel · Command Palette |
116
116
  | **Display** | 6 | Icon · Image · Typography · Code · Kbd · Spotlight Card |
@@ -2058,6 +2058,125 @@
2058
2058
  "name" : "XRangeSlider"
2059
2059
  }
2060
2060
  } ]
2061
+ }, {
2062
+ "kind" : "javascript-module",
2063
+ "path" : "dist/x-drop-zone.js",
2064
+ "declarations" : [ {
2065
+ "kind" : "class",
2066
+ "name" : "XDropZone",
2067
+ "tagName" : "x-drop-zone",
2068
+ "superclass" : {
2069
+ "name" : "HTMLElement"
2070
+ },
2071
+ "members" : [ {
2072
+ "kind" : "field",
2073
+ "name" : "value",
2074
+ "type" : {
2075
+ "text" : "string"
2076
+ }
2077
+ }, {
2078
+ "kind" : "field",
2079
+ "name" : "accepts",
2080
+ "type" : {
2081
+ "text" : "string"
2082
+ }
2083
+ }, {
2084
+ "kind" : "field",
2085
+ "name" : "max",
2086
+ "type" : {
2087
+ "text" : "number"
2088
+ }
2089
+ }, {
2090
+ "kind" : "field",
2091
+ "name" : "label",
2092
+ "type" : {
2093
+ "text" : "string"
2094
+ }
2095
+ }, {
2096
+ "kind" : "field",
2097
+ "name" : "disabled",
2098
+ "type" : {
2099
+ "text" : "boolean"
2100
+ }
2101
+ }, {
2102
+ "kind" : "field",
2103
+ "name" : "pending",
2104
+ "type" : {
2105
+ "text" : "boolean"
2106
+ }
2107
+ }, {
2108
+ "kind" : "field",
2109
+ "name" : "pendingIndex",
2110
+ "type" : {
2111
+ "text" : "number"
2112
+ }
2113
+ }, {
2114
+ "kind" : "field",
2115
+ "name" : "animateMoves",
2116
+ "type" : {
2117
+ "text" : "boolean"
2118
+ }
2119
+ }, {
2120
+ "kind" : "method",
2121
+ "name" : "reserve",
2122
+ "return" : {
2123
+ "type" : {
2124
+ "text" : "void"
2125
+ }
2126
+ },
2127
+ "parameters" : [ {
2128
+ "name" : "panel",
2129
+ "type" : {
2130
+ "text" : "HTMLElement"
2131
+ }
2132
+ }, {
2133
+ "name" : "index",
2134
+ "type" : {
2135
+ "text" : "number"
2136
+ }
2137
+ } ]
2138
+ }, {
2139
+ "kind" : "method",
2140
+ "name" : "release",
2141
+ "return" : {
2142
+ "type" : {
2143
+ "text" : "void"
2144
+ }
2145
+ }
2146
+ } ],
2147
+ "events" : [ {
2148
+ "name" : "x-drop-zone-enter",
2149
+ "type" : {
2150
+ "text" : "CustomEvent"
2151
+ }
2152
+ }, {
2153
+ "name" : "x-drop-zone-leave",
2154
+ "type" : {
2155
+ "text" : "CustomEvent"
2156
+ }
2157
+ }, {
2158
+ "name" : "x-drop-zone-drop",
2159
+ "type" : {
2160
+ "text" : "CustomEvent"
2161
+ }
2162
+ } ],
2163
+ "slots" : [ {
2164
+ "name" : ""
2165
+ } ]
2166
+ } ],
2167
+ "exports" : [ {
2168
+ "kind" : "js",
2169
+ "name" : "init",
2170
+ "declaration" : {
2171
+ "name" : "init"
2172
+ }
2173
+ }, {
2174
+ "kind" : "custom-element-definition",
2175
+ "name" : "x-drop-zone",
2176
+ "declaration" : {
2177
+ "name" : "XDropZone"
2178
+ }
2179
+ } ]
2061
2180
  }, {
2062
2181
  "kind" : "javascript-module",
2063
2182
  "path" : "dist/x-spacer.js",
@@ -3409,6 +3528,87 @@
3409
3528
  "name" : "XButton"
3410
3529
  }
3411
3530
  } ]
3531
+ }, {
3532
+ "kind" : "javascript-module",
3533
+ "path" : "dist/x-drag-panel.js",
3534
+ "declarations" : [ {
3535
+ "kind" : "class",
3536
+ "name" : "XDragPanel",
3537
+ "tagName" : "x-drag-panel",
3538
+ "superclass" : {
3539
+ "name" : "HTMLElement"
3540
+ },
3541
+ "members" : [ {
3542
+ "kind" : "field",
3543
+ "name" : "kind",
3544
+ "type" : {
3545
+ "text" : "string"
3546
+ }
3547
+ }, {
3548
+ "kind" : "field",
3549
+ "name" : "value",
3550
+ "type" : {
3551
+ "text" : "string"
3552
+ }
3553
+ }, {
3554
+ "kind" : "field",
3555
+ "name" : "label",
3556
+ "type" : {
3557
+ "text" : "string"
3558
+ }
3559
+ }, {
3560
+ "kind" : "field",
3561
+ "name" : "grab",
3562
+ "type" : {
3563
+ "text" : "string"
3564
+ }
3565
+ }, {
3566
+ "kind" : "field",
3567
+ "name" : "autoScroll",
3568
+ "type" : {
3569
+ "text" : "string"
3570
+ }
3571
+ }, {
3572
+ "kind" : "field",
3573
+ "name" : "disabled",
3574
+ "type" : {
3575
+ "text" : "boolean"
3576
+ }
3577
+ }, {
3578
+ "kind" : "field",
3579
+ "name" : "pending",
3580
+ "type" : {
3581
+ "text" : "boolean"
3582
+ }
3583
+ } ],
3584
+ "events" : [ {
3585
+ "name" : "x-drag-panel-drag-start",
3586
+ "type" : {
3587
+ "text" : "CustomEvent"
3588
+ }
3589
+ }, {
3590
+ "name" : "x-drag-panel-drag-cancel",
3591
+ "type" : {
3592
+ "text" : "CustomEvent"
3593
+ }
3594
+ } ],
3595
+ "slots" : [ {
3596
+ "name" : ""
3597
+ } ]
3598
+ } ],
3599
+ "exports" : [ {
3600
+ "kind" : "js",
3601
+ "name" : "init",
3602
+ "declaration" : {
3603
+ "name" : "init"
3604
+ }
3605
+ }, {
3606
+ "kind" : "custom-element-definition",
3607
+ "name" : "x-drag-panel",
3608
+ "declaration" : {
3609
+ "name" : "XDragPanel"
3610
+ }
3611
+ } ]
3412
3612
  }, {
3413
3613
  "kind" : "javascript-module",
3414
3614
  "path" : "dist/x-form.js",
package/dist/baredom.d.ts CHANGED
@@ -23,6 +23,7 @@ export { XKineticTypography } from "./x-kinetic-typography";
23
23
  export { XTypography } from "./x-typography";
24
24
  export { XCode } from "./x-code";
25
25
  export { XRangeSlider } from "./x-range-slider";
26
+ export { XDropZone } from "./x-drop-zone";
26
27
  export { XSpacer } from "./x-spacer";
27
28
  export { XNavbar } from "./x-navbar";
28
29
  export { XColorPicker } from "./x-color-picker";
@@ -40,6 +41,7 @@ export { XConfetti } from "./x-confetti";
40
41
  export { XSkeletonGroup } from "./x-skeleton-group";
41
42
  export { XParticleButton } from "./x-particle-button";
42
43
  export { XButton } from "./x-button";
44
+ export { XDragPanel } from "./x-drag-panel";
43
45
  export { XForm } from "./x-form";
44
46
  export { XToaster } from "./x-toaster";
45
47
  export { XTableCell } from "./x-table-cell";