@deepfuture/dui-components 0.0.21 → 1.0.1

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 (333) hide show
  1. package/README.md +56 -65
  2. package/_install.js +11 -0
  3. package/accordion/accordion-item.d.ts +3 -20
  4. package/accordion/accordion-item.js +92 -292
  5. package/accordion/accordion.d.ts +3 -18
  6. package/accordion/accordion.js +9 -247
  7. package/accordion/index.d.ts +6 -6
  8. package/accordion/index.js +5 -5
  9. package/alert-dialog/alert-dialog-close.d.ts +3 -14
  10. package/alert-dialog/alert-dialog-close.js +4 -34
  11. package/alert-dialog/alert-dialog-popup.d.ts +3 -32
  12. package/alert-dialog/alert-dialog-popup.js +68 -317
  13. package/alert-dialog/alert-dialog-trigger.d.ts +3 -14
  14. package/alert-dialog/alert-dialog-trigger.js +4 -51
  15. package/alert-dialog/alert-dialog.d.ts +3 -30
  16. package/alert-dialog/alert-dialog.js +8 -158
  17. package/alert-dialog/index.d.ts +11 -11
  18. package/alert-dialog/index.js +9 -9
  19. package/all.d.ts +159 -123
  20. package/all.js +134 -231
  21. package/avatar/avatar.d.ts +3 -39
  22. package/avatar/avatar.js +18 -238
  23. package/avatar/index.d.ts +4 -4
  24. package/avatar/index.js +3 -3
  25. package/badge/badge.d.ts +3 -10
  26. package/badge/badge.js +87 -22
  27. package/badge/index.d.ts +2 -3
  28. package/badge/index.js +2 -3
  29. package/breadcrumb/breadcrumb-ellipsis.d.ts +3 -12
  30. package/breadcrumb/breadcrumb-ellipsis.js +8 -34
  31. package/breadcrumb/breadcrumb-item.d.ts +3 -11
  32. package/breadcrumb/breadcrumb-item.js +7 -26
  33. package/breadcrumb/breadcrumb-link.d.ts +3 -12
  34. package/breadcrumb/breadcrumb-link.js +16 -26
  35. package/breadcrumb/breadcrumb-page.d.ts +3 -11
  36. package/breadcrumb/breadcrumb-page.js +8 -31
  37. package/breadcrumb/breadcrumb-separator.d.ts +3 -12
  38. package/breadcrumb/breadcrumb-separator.js +8 -31
  39. package/breadcrumb/breadcrumb.d.ts +3 -12
  40. package/breadcrumb/breadcrumb.js +10 -33
  41. package/breadcrumb/index.d.ts +12 -13
  42. package/breadcrumb/index.js +12 -13
  43. package/button/button.d.ts +3 -32
  44. package/button/button.js +220 -165
  45. package/button/index.d.ts +3 -3
  46. package/button/index.js +3 -3
  47. package/calendar/calendar.d.ts +3 -31
  48. package/calendar/calendar.js +71 -481
  49. package/calendar/index.d.ts +3 -3
  50. package/calendar/index.js +3 -3
  51. package/card/card.d.ts +3 -27
  52. package/card/card.js +80 -163
  53. package/card/index.d.ts +2 -3
  54. package/card/index.js +2 -3
  55. package/card-grid/card-grid.d.ts +3 -15
  56. package/card-grid/card-grid.js +8 -106
  57. package/card-grid/index.d.ts +2 -3
  58. package/card-grid/index.js +2 -3
  59. package/checkbox/checkbox-group.d.ts +3 -34
  60. package/checkbox/checkbox-group.js +11 -188
  61. package/checkbox/checkbox.d.ts +3 -47
  62. package/checkbox/checkbox.js +43 -341
  63. package/checkbox/index.d.ts +6 -6
  64. package/checkbox/index.js +5 -5
  65. package/collapsible/collapsible.d.ts +3 -20
  66. package/collapsible/collapsible.js +82 -277
  67. package/collapsible/index.d.ts +3 -3
  68. package/collapsible/index.js +3 -3
  69. package/combobox/combobox.d.ts +3 -47
  70. package/combobox/combobox.js +136 -538
  71. package/combobox/index.d.ts +4 -4
  72. package/combobox/index.js +3 -3
  73. package/command/command-empty.d.ts +3 -8
  74. package/command/command-empty.js +10 -88
  75. package/command/command-group.d.ts +3 -13
  76. package/command/command-group.js +14 -114
  77. package/command/command-input.d.ts +3 -11
  78. package/command/command-input.js +20 -136
  79. package/command/command-item.d.ts +3 -18
  80. package/command/command-item.js +23 -212
  81. package/command/command-list.d.ts +3 -7
  82. package/command/command-list.js +11 -79
  83. package/command/command-separator.d.ts +3 -5
  84. package/command/command-separator.js +10 -11
  85. package/command/command-shortcut.d.ts +3 -5
  86. package/command/command-shortcut.js +9 -12
  87. package/command/command.d.ts +3 -23
  88. package/command/command.js +10 -339
  89. package/command/index.d.ts +17 -19
  90. package/command/index.js +16 -18
  91. package/data-table/data-table.d.ts +3 -57
  92. package/data-table/data-table.js +85 -449
  93. package/data-table/index.d.ts +3 -4
  94. package/data-table/index.js +2 -3
  95. package/dialog/dialog-close.d.ts +3 -14
  96. package/dialog/dialog-close.js +4 -34
  97. package/dialog/dialog-popup.d.ts +3 -34
  98. package/dialog/dialog-popup.js +70 -336
  99. package/dialog/dialog-trigger.d.ts +3 -14
  100. package/dialog/dialog-trigger.js +4 -51
  101. package/dialog/dialog.d.ts +3 -30
  102. package/dialog/dialog.js +8 -158
  103. package/dialog/index.d.ts +11 -11
  104. package/dialog/index.js +9 -9
  105. package/dropzone/dropzone.d.ts +3 -72
  106. package/dropzone/dropzone.js +29 -407
  107. package/dropzone/index.d.ts +4 -4
  108. package/dropzone/index.js +3 -3
  109. package/field/field.d.ts +3 -30
  110. package/field/field.js +34 -353
  111. package/field/index.d.ts +1 -0
  112. package/field/index.js +1 -0
  113. package/fieldset/fieldset.d.ts +3 -18
  114. package/fieldset/fieldset.js +21 -110
  115. package/fieldset/index.d.ts +1 -0
  116. package/fieldset/index.js +1 -0
  117. package/icon/icon.d.ts +3 -15
  118. package/icon/icon.js +4 -33
  119. package/icon/index.d.ts +2 -3
  120. package/icon/index.js +2 -3
  121. package/input/index.d.ts +3 -3
  122. package/input/index.js +3 -3
  123. package/input/input.d.ts +3 -49
  124. package/input/input.js +57 -238
  125. package/menu/index.d.ts +4 -5
  126. package/menu/index.js +4 -5
  127. package/menu/menu-item.d.ts +3 -13
  128. package/menu/menu-item.js +40 -91
  129. package/menu/menu.d.ts +3 -15
  130. package/menu/menu.js +27 -277
  131. package/menubar/index.d.ts +3 -4
  132. package/menubar/index.js +2 -3
  133. package/menubar/menubar.d.ts +3 -19
  134. package/menubar/menubar.js +12 -183
  135. package/number-field/index.d.ts +3 -3
  136. package/number-field/index.js +3 -3
  137. package/number-field/number-field.d.ts +3 -55
  138. package/number-field/number-field.js +205 -698
  139. package/package.json +125 -113
  140. package/popover/index.d.ts +11 -11
  141. package/popover/index.js +9 -9
  142. package/popover/popover-close.d.ts +3 -12
  143. package/popover/popover-close.js +4 -32
  144. package/popover/popover-popup.d.ts +3 -18
  145. package/popover/popover-popup.js +28 -205
  146. package/popover/popover-trigger.d.ts +3 -13
  147. package/popover/popover-trigger.js +4 -73
  148. package/popover/popover.d.ts +3 -29
  149. package/popover/popover.js +8 -207
  150. package/portal/index.d.ts +3 -4
  151. package/portal/index.js +2 -3
  152. package/portal/portal.d.ts +3 -27
  153. package/portal/portal.js +8 -157
  154. package/preview-card/index.d.ts +9 -9
  155. package/preview-card/index.js +7 -7
  156. package/preview-card/preview-card-popup.d.ts +3 -14
  157. package/preview-card/preview-card-popup.js +29 -194
  158. package/preview-card/preview-card-trigger.d.ts +3 -12
  159. package/preview-card/preview-card-trigger.js +4 -74
  160. package/preview-card/preview-card.d.ts +3 -33
  161. package/preview-card/preview-card.js +8 -239
  162. package/progress/index.d.ts +2 -3
  163. package/progress/index.js +2 -3
  164. package/progress/progress.d.ts +3 -17
  165. package/progress/progress.js +28 -130
  166. package/radio/index.d.ts +6 -6
  167. package/radio/index.js +5 -5
  168. package/radio/radio-group.d.ts +3 -37
  169. package/radio/radio-group.js +8 -200
  170. package/radio/radio.d.ts +3 -28
  171. package/radio/radio.js +38 -213
  172. package/scroll-area/index.d.ts +2 -3
  173. package/scroll-area/index.js +2 -3
  174. package/scroll-area/scroll-area.d.ts +3 -36
  175. package/scroll-area/scroll-area.js +25 -535
  176. package/select/index.d.ts +3 -4
  177. package/select/index.js +2 -3
  178. package/select/select.d.ts +3 -39
  179. package/select/select.js +115 -425
  180. package/separator/index.d.ts +2 -3
  181. package/separator/index.js +2 -3
  182. package/separator/separator.d.ts +3 -10
  183. package/separator/separator.js +23 -85
  184. package/sidebar/index.d.ts +29 -29
  185. package/sidebar/index.js +27 -32
  186. package/sidebar/sidebar-content.d.ts +3 -12
  187. package/sidebar/sidebar-content.js +7 -29
  188. package/sidebar/sidebar-footer.d.ts +3 -10
  189. package/sidebar/sidebar-footer.js +7 -20
  190. package/sidebar/sidebar-group-label.d.ts +3 -15
  191. package/sidebar/sidebar-group-label.js +16 -41
  192. package/sidebar/sidebar-group.d.ts +3 -13
  193. package/sidebar/sidebar-group.js +7 -24
  194. package/sidebar/sidebar-header.d.ts +3 -10
  195. package/sidebar/sidebar-header.js +7 -16
  196. package/sidebar/sidebar-inset.d.ts +3 -13
  197. package/sidebar/sidebar-inset.js +7 -28
  198. package/sidebar/sidebar-menu-button.d.ts +3 -26
  199. package/sidebar/sidebar-menu-button.js +59 -217
  200. package/sidebar/sidebar-menu-item.d.ts +3 -10
  201. package/sidebar/sidebar-menu-item.js +7 -19
  202. package/sidebar/sidebar-menu.d.ts +3 -12
  203. package/sidebar/sidebar-menu.js +7 -25
  204. package/sidebar/sidebar-provider.d.ts +3 -34
  205. package/sidebar/sidebar-provider.js +22 -232
  206. package/sidebar/sidebar-separator.d.ts +3 -10
  207. package/sidebar/sidebar-separator.js +9 -19
  208. package/sidebar/sidebar-trigger.d.ts +3 -14
  209. package/sidebar/sidebar-trigger.js +10 -46
  210. package/sidebar/sidebar.d.ts +3 -19
  211. package/sidebar/sidebar.js +65 -262
  212. package/slider/index.d.ts +3 -3
  213. package/slider/index.js +3 -3
  214. package/slider/slider.d.ts +3 -45
  215. package/slider/slider.js +97 -382
  216. package/spinner/index.d.ts +2 -3
  217. package/spinner/index.js +2 -3
  218. package/spinner/spinner.d.ts +3 -11
  219. package/spinner/spinner.js +20 -163
  220. package/split-button/index.d.ts +3 -1
  221. package/split-button/index.js +3 -1
  222. package/split-button/split-button.d.ts +3 -33
  223. package/split-button/split-button.js +306 -394
  224. package/stepper/index.d.ts +3 -3
  225. package/stepper/index.js +3 -3
  226. package/stepper/stepper.d.ts +3 -41
  227. package/stepper/stepper.js +57 -381
  228. package/switch/index.d.ts +3 -3
  229. package/switch/index.js +3 -3
  230. package/switch/switch.d.ts +3 -30
  231. package/switch/switch.js +63 -228
  232. package/tabs/index.d.ts +12 -12
  233. package/tabs/index.js +11 -11
  234. package/tabs/tab.d.ts +3 -14
  235. package/tabs/tab.js +32 -131
  236. package/tabs/tabs-indicator.d.ts +3 -9
  237. package/tabs/tabs-indicator.js +17 -22
  238. package/tabs/tabs-list.d.ts +3 -15
  239. package/tabs/tabs-list.js +14 -113
  240. package/tabs/tabs-panel.d.ts +3 -16
  241. package/tabs/tabs-panel.js +32 -114
  242. package/tabs/tabs.d.ts +3 -22
  243. package/tabs/tabs.js +8 -170
  244. package/textarea/index.d.ts +4 -4
  245. package/textarea/index.js +3 -3
  246. package/textarea/textarea.d.ts +3 -36
  247. package/textarea/textarea.js +63 -220
  248. package/toggle/index.d.ts +6 -6
  249. package/toggle/index.js +5 -5
  250. package/toggle/toggle-group.d.ts +3 -27
  251. package/toggle/toggle-group.js +9 -224
  252. package/toggle/toggle.d.ts +3 -26
  253. package/toggle/toggle.js +93 -178
  254. package/tokens/properties.css +361 -0
  255. package/tokens/prose.css +250 -0
  256. package/tokens/prose.d.ts +2 -0
  257. package/tokens/prose.js +4 -0
  258. package/tokens/tokens-raw.d.ts +2 -0
  259. package/tokens/tokens-raw.js +2 -0
  260. package/tokens/tokens.css +409 -0
  261. package/tokens/tokens.d.ts +2 -0
  262. package/tokens/tokens.js +5 -0
  263. package/toolbar/index.d.ts +2 -3
  264. package/toolbar/index.js +2 -3
  265. package/toolbar/toolbar.d.ts +3 -11
  266. package/toolbar/toolbar.js +25 -116
  267. package/tooltip/index.d.ts +9 -9
  268. package/tooltip/index.js +7 -7
  269. package/tooltip/tooltip-popup.d.ts +3 -14
  270. package/tooltip/tooltip-popup.js +31 -185
  271. package/tooltip/tooltip-trigger.d.ts +3 -14
  272. package/tooltip/tooltip-trigger.js +5 -148
  273. package/tooltip/tooltip.d.ts +3 -35
  274. package/tooltip/tooltip.js +8 -253
  275. package/trunc/index.d.ts +2 -3
  276. package/trunc/index.js +2 -3
  277. package/trunc/trunc.d.ts +3 -17
  278. package/trunc/trunc.js +10 -108
  279. package/_deprecated/center/center.d.ts +0 -14
  280. package/_deprecated/center/center.js +0 -37
  281. package/_deprecated/center/index.d.ts +0 -3
  282. package/_deprecated/center/index.js +0 -3
  283. package/_deprecated/center/register.js +0 -4
  284. package/_deprecated/hstack/hstack.d.ts +0 -25
  285. package/_deprecated/hstack/hstack.js +0 -187
  286. package/_deprecated/hstack/index.d.ts +0 -4
  287. package/_deprecated/hstack/index.js +0 -3
  288. package/_deprecated/hstack/register.d.ts +0 -1
  289. package/_deprecated/hstack/register.js +0 -4
  290. package/_deprecated/page-inset/index.d.ts +0 -3
  291. package/_deprecated/page-inset/index.js +0 -3
  292. package/_deprecated/page-inset/page-inset.d.ts +0 -28
  293. package/_deprecated/page-inset/page-inset.js +0 -151
  294. package/_deprecated/page-inset/register.d.ts +0 -1
  295. package/_deprecated/page-inset/register.js +0 -4
  296. package/_deprecated/vstack/index.d.ts +0 -3
  297. package/_deprecated/vstack/index.js +0 -3
  298. package/_deprecated/vstack/register.d.ts +0 -1
  299. package/_deprecated/vstack/register.js +0 -4
  300. package/_deprecated/vstack/vstack.d.ts +0 -17
  301. package/_deprecated/vstack/vstack.js +0 -125
  302. package/accordion/accordion-context.d.ts +0 -15
  303. package/accordion/accordion-context.js +0 -3
  304. package/alert-dialog/alert-dialog-context.d.ts +0 -13
  305. package/alert-dialog/alert-dialog-context.js +0 -3
  306. package/checkbox/checkbox-group-context.d.ts +0 -11
  307. package/checkbox/checkbox-group-context.js +0 -3
  308. package/command/command-context.d.ts +0 -30
  309. package/command/command-context.js +0 -3
  310. package/command/command-score.d.ts +0 -6
  311. package/command/command-score.js +0 -31
  312. package/dialog/dialog-context.d.ts +0 -13
  313. package/dialog/dialog-context.js +0 -3
  314. package/global.d.ts +0 -179
  315. package/menubar/menubar-context.d.ts +0 -9
  316. package/menubar/menubar-context.js +0 -2
  317. package/popover/popover-context.d.ts +0 -17
  318. package/popover/popover-context.js +0 -3
  319. package/preview-card/preview-card-context.d.ts +0 -16
  320. package/preview-card/preview-card-context.js +0 -3
  321. package/radio/radio-group-context.d.ts +0 -11
  322. package/radio/radio-group-context.js +0 -2
  323. package/sidebar/sidebar-context.d.ts +0 -15
  324. package/sidebar/sidebar-context.js +0 -3
  325. package/split-button/register.d.ts +0 -1
  326. package/split-button/register.js +0 -4
  327. package/tabs/tabs-context.d.ts +0 -8
  328. package/tabs/tabs-context.js +0 -2
  329. package/toggle/toggle-group-context.d.ts +0 -9
  330. package/toggle/toggle-group-context.js +0 -2
  331. package/tooltip/tooltip-context.d.ts +0 -17
  332. package/tooltip/tooltip-context.js +0 -3
  333. /package/{_deprecated/center/register.d.ts → _install.d.ts} +0 -0
@@ -1,293 +1,96 @@
1
- /** Ported from original DUI: deep-future-app/app/client/components/dui/sidebar */
2
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
- var _, done = false;
8
- for (var i = decorators.length - 1; i >= 0; i--) {
9
- var context = {};
10
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
- if (kind === "accessor") {
15
- if (result === void 0) continue;
16
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
- if (_ = accept(result.get)) descriptor.get = _;
18
- if (_ = accept(result.set)) descriptor.set = _;
19
- if (_ = accept(result.init)) initializers.unshift(_);
20
- }
21
- else if (_ = accept(result)) {
22
- if (kind === "field") initializers.unshift(_);
23
- else descriptor[key] = _;
24
- }
25
- }
26
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
- done = true;
28
- };
29
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
- var useValue = arguments.length > 2;
31
- for (var i = 0; i < initializers.length; i++) {
32
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
- }
34
- return useValue ? value : void 0;
35
- };
36
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
37
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
38
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
39
- };
40
- import { css, html, LitElement } from "lit";
41
- import { state } from "lit/decorators.js";
42
- import { ContextConsumer } from "@lit/context";
43
- import { base } from "@deepfuture/dui-core/base";
44
- import { sidebarContext } from "./sidebar-context.js";
1
+ import { css } from "lit";
2
+ import { DuiSidebarPrimitive } from "@deepfuture/dui-primitives/sidebar";
3
+ import "../_install.js";
45
4
  const styles = css `
46
- :host {
47
- display: block;
48
- flex-shrink: 0;
49
- height: 100%;
50
- }
5
+ /* ── Desktop Outer ── */
51
6
 
52
7
  .DesktopOuter {
53
- position: relative;
54
- height: 100%;
55
- overflow: hidden;
56
- transition-property: width;
8
+ width: var(--sidebar-width);
9
+ transition: width var(--duration-normal) var(--ease-out-3);
57
10
  }
58
11
 
59
- .DesktopInner {
60
- position: absolute;
61
- top: 0;
62
- bottom: 0;
63
- z-index: 10;
64
- display: flex;
65
- flex-direction: column;
66
- overflow-y: auto;
67
- overflow-x: hidden;
12
+ :host([data-state="collapsed"][data-collapsible="offcanvas"]) .DesktopOuter {
13
+ width: 0;
68
14
  }
69
15
 
70
- :host([data-side="left"]) .DesktopInner {
71
- left: 0;
16
+ :host([data-state="collapsed"][data-collapsible="icon"]) .DesktopOuter {
17
+ width: var(--sidebar-width-icon);
72
18
  }
73
19
 
74
- :host([data-side="right"]) .DesktopInner {
75
- right: 0;
20
+ :host([data-variant="floating"]) .DesktopOuter {
21
+ width: calc(var(--sidebar-width) + var(--space-4));
76
22
  }
77
23
 
78
- :host([data-collapsible="offcanvas"][data-state="collapsed"][data-side="left"])
79
- .DesktopInner {
80
- left: calc(-1 * var(--sidebar-width));
24
+ :host([data-variant="floating"][data-state="collapsed"][data-collapsible="icon"])
25
+ .DesktopOuter {
26
+ width: calc(var(--sidebar-width-icon) + var(--space-4));
81
27
  }
82
28
 
83
- :host([data-collapsible="offcanvas"][data-state="collapsed"][data-side="right"])
84
- .DesktopInner {
85
- right: calc(-1 * var(--sidebar-width));
29
+ :host([data-variant="inset"]) .DesktopOuter {
30
+ width: calc(var(--sidebar-width) + var(--space-4));
86
31
  }
87
32
 
88
- :host([data-variant="floating"]) .DesktopInner,
89
- :host([data-variant="inset"]) .DesktopInner {
90
- top: 0;
91
- bottom: 0;
33
+ :host([data-variant="inset"][data-state="collapsed"][data-collapsible="icon"])
34
+ .DesktopOuter {
35
+ width: calc(var(--sidebar-width-icon) + var(--space-4));
92
36
  }
93
37
 
94
- :host([data-collapsible="icon"][data-state="collapsed"]) .DesktopInner {
95
- overflow: hidden;
38
+ /* ── Desktop Inner ── */
39
+
40
+ .DesktopInner {
41
+ width: var(--sidebar-width);
42
+ background: var(--sidebar-bg);
43
+ color: var(--sidebar-fg);
44
+ transition-duration: var(--duration-normal);
45
+ transition-timing-function: var(--ease-out-3);
96
46
  }
97
47
 
98
- .Backdrop {
99
- position: fixed;
100
- inset: 0;
101
- z-index: 999;
102
- transition-property: opacity;
48
+ :host([data-side="left"][data-variant="sidebar"]) .DesktopInner {
49
+ border-right: var(--border-width-thin) solid var(--sidebar-border);
103
50
  }
104
51
 
105
- .MobilePanel {
106
- position: fixed;
107
- top: 0;
108
- bottom: 0;
109
- z-index: 1000;
110
- display: flex;
111
- flex-direction: column;
112
- overflow-y: auto;
113
- transition-property: transform;
52
+ :host([data-side="right"][data-variant="sidebar"]) .DesktopInner {
53
+ border-left: var(--border-width-thin) solid var(--sidebar-border);
54
+ }
55
+
56
+ :host([data-variant="floating"]) .DesktopInner {
57
+ margin: var(--space-2);
58
+ border-radius: var(--radius-lg);
59
+ border: var(--border-width-thin) solid var(--sidebar-border);
60
+ box-shadow: var(--shadow-md);
61
+ }
62
+
63
+ :host([data-variant="inset"]) .DesktopInner {
64
+ margin: var(--space-2);
114
65
  }
115
66
 
116
- :host([data-side="left"]) .MobilePanel {
117
- left: 0;
67
+ :host([data-state="collapsed"][data-collapsible="icon"]) .DesktopInner {
68
+ width: var(--sidebar-width-icon);
118
69
  }
119
70
 
120
- :host([data-side="right"]) .MobilePanel {
121
- right: 0;
71
+ /* ── Backdrop ── */
72
+
73
+ .Backdrop {
74
+ background: black;
75
+ opacity: 0.4;
122
76
  }
123
77
 
124
- .MobilePanel[data-starting-style] {
125
- transform: translateX(var(--mobile-start-x));
78
+ .Backdrop[data-starting-style],
79
+ .Backdrop[data-ending-style] {
80
+ opacity: 0;
126
81
  }
127
82
 
128
- .MobilePanel[data-ending-style] {
129
- transform: translateX(var(--mobile-end-x));
83
+ /* ── Mobile Panel ── */
84
+
85
+ .MobilePanel {
86
+ width: var(--sidebar-width-mobile);
87
+ background: var(--sidebar-bg);
88
+ color: var(--sidebar-fg);
89
+ box-shadow: var(--shadow-lg);
90
+ transition: transform var(--duration-normal) var(--ease-out-3);
130
91
  }
131
92
  `;
132
- /**
133
- * `<dui-sidebar>` Main sidebar container.
134
- *
135
- * Consumes sidebar context and renders the appropriate desktop or mobile layout.
136
- * Desktop uses a width-transitioning wrapper; mobile uses a backdrop + sliding panel.
137
- *
138
- * @slot - Default slot for sidebar content (header, content, footer, etc.).
139
- * @csspart desktop-outer - The outer desktop wrapper that transitions width.
140
- * @csspart desktop-inner - The inner desktop container with content.
141
- * @csspart backdrop - The mobile backdrop overlay.
142
- * @csspart mobile-panel - The sliding mobile panel.
143
- */
144
- let DuiSidebar = (() => {
145
- let _classSuper = LitElement;
146
- let _private_mounted_decorators;
147
- let _private_mounted_initializers = [];
148
- let _private_mounted_extraInitializers = [];
149
- let _private_mounted_descriptor;
150
- let _private_startingStyle_decorators;
151
- let _private_startingStyle_initializers = [];
152
- let _private_startingStyle_extraInitializers = [];
153
- let _private_startingStyle_descriptor;
154
- let _private_endingStyle_decorators;
155
- let _private_endingStyle_initializers = [];
156
- let _private_endingStyle_extraInitializers = [];
157
- let _private_endingStyle_descriptor;
158
- return class DuiSidebar extends _classSuper {
159
- static {
160
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
161
- _private_mounted_decorators = [state()];
162
- _private_startingStyle_decorators = [state()];
163
- _private_endingStyle_decorators = [state()];
164
- __esDecorate(this, _private_mounted_descriptor = { get: __setFunctionName(function () { return this.#mounted_accessor_storage; }, "#mounted", "get"), set: __setFunctionName(function (value) { this.#mounted_accessor_storage = value; }, "#mounted", "set") }, _private_mounted_decorators, { kind: "accessor", name: "#mounted", static: false, private: true, access: { has: obj => #mounted in obj, get: obj => obj.#mounted, set: (obj, value) => { obj.#mounted = value; } }, metadata: _metadata }, _private_mounted_initializers, _private_mounted_extraInitializers);
165
- __esDecorate(this, _private_startingStyle_descriptor = { get: __setFunctionName(function () { return this.#startingStyle_accessor_storage; }, "#startingStyle", "get"), set: __setFunctionName(function (value) { this.#startingStyle_accessor_storage = value; }, "#startingStyle", "set") }, _private_startingStyle_decorators, { kind: "accessor", name: "#startingStyle", static: false, private: true, access: { has: obj => #startingStyle in obj, get: obj => obj.#startingStyle, set: (obj, value) => { obj.#startingStyle = value; } }, metadata: _metadata }, _private_startingStyle_initializers, _private_startingStyle_extraInitializers);
166
- __esDecorate(this, _private_endingStyle_descriptor = { get: __setFunctionName(function () { return this.#endingStyle_accessor_storage; }, "#endingStyle", "get"), set: __setFunctionName(function (value) { this.#endingStyle_accessor_storage = value; }, "#endingStyle", "set") }, _private_endingStyle_decorators, { kind: "accessor", name: "#endingStyle", static: false, private: true, access: { has: obj => #endingStyle in obj, get: obj => obj.#endingStyle, set: (obj, value) => { obj.#endingStyle = value; } }, metadata: _metadata }, _private_endingStyle_initializers, _private_endingStyle_extraInitializers);
167
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
168
- }
169
- static tagName = "dui-sidebar";
170
- static styles = [base, styles];
171
- #mounted_accessor_storage = __runInitializers(this, _private_mounted_initializers, false);
172
- get #mounted() { return _private_mounted_descriptor.get.call(this); }
173
- set #mounted(value) { return _private_mounted_descriptor.set.call(this, value); }
174
- #startingStyle_accessor_storage = (__runInitializers(this, _private_mounted_extraInitializers), __runInitializers(this, _private_startingStyle_initializers, false));
175
- get #startingStyle() { return _private_startingStyle_descriptor.get.call(this); }
176
- set #startingStyle(value) { return _private_startingStyle_descriptor.set.call(this, value); }
177
- #endingStyle_accessor_storage = (__runInitializers(this, _private_startingStyle_extraInitializers), __runInitializers(this, _private_endingStyle_initializers, false));
178
- get #endingStyle() { return _private_endingStyle_descriptor.get.call(this); }
179
- set #endingStyle(value) { return _private_endingStyle_descriptor.set.call(this, value); }
180
- #ctx = (__runInitializers(this, _private_endingStyle_extraInitializers), new ContextConsumer(this, {
181
- context: sidebarContext,
182
- subscribe: true,
183
- }));
184
- willUpdate() {
185
- const ctx = this.#ctx.value;
186
- if (!ctx)
187
- return;
188
- this.dataset.state = ctx.state;
189
- this.dataset.side = ctx.side;
190
- this.dataset.variant = ctx.variant;
191
- this.dataset.collapsible = ctx.collapsible;
192
- // Handle mobile panel animation
193
- if (ctx.isMobile) {
194
- if (ctx.openMobile && !this.#mounted) {
195
- this.#animateOpen();
196
- }
197
- else if (!ctx.openMobile && this.#mounted && !this.#endingStyle) {
198
- this.#animateClose();
199
- }
200
- }
201
- }
202
- async #animateOpen() {
203
- this.#mounted = true;
204
- this.#startingStyle = true;
205
- await new Promise((r) => requestAnimationFrame(() => requestAnimationFrame(() => r())));
206
- this.#startingStyle = false;
207
- }
208
- #animateClose() {
209
- this.#endingStyle = true;
210
- const panel = this.shadowRoot?.querySelector(".MobilePanel");
211
- if (!panel) {
212
- this.#finishClose();
213
- return;
214
- }
215
- let called = false;
216
- const done = () => {
217
- if (called)
218
- return;
219
- called = true;
220
- panel.removeEventListener("transitionend", onEnd);
221
- clearTimeout(timer);
222
- this.#finishClose();
223
- };
224
- const onEnd = () => {
225
- done();
226
- };
227
- panel.addEventListener("transitionend", onEnd);
228
- const timer = setTimeout(done, 250);
229
- }
230
- #finishClose() {
231
- this.#endingStyle = false;
232
- this.#mounted = false;
233
- }
234
- #onBackdropClick = () => {
235
- this.#ctx.value?.setOpen(false);
236
- };
237
- #onMobileKeyDown = (e) => {
238
- if (e.key === "Escape") {
239
- e.preventDefault();
240
- this.#ctx.value?.setOpen(false);
241
- }
242
- };
243
- render() {
244
- const ctx = this.#ctx.value;
245
- if (!ctx)
246
- return html ``;
247
- const side = ctx.side;
248
- const startX = side === "left" ? "-100%" : "100%";
249
- if (ctx.isMobile) {
250
- if (!this.#mounted)
251
- return html ``;
252
- return html `
253
- <div
254
- class="Backdrop"
255
- part="backdrop"
256
- ?data-starting-style=${this.#startingStyle}
257
- ?data-ending-style=${this.#endingStyle}
258
- @click=${this.#onBackdropClick}
259
- ></div>
260
- <div
261
- class="MobilePanel"
262
- part="mobile-panel"
263
- role="dialog"
264
- tabindex="-1"
265
- style="--mobile-start-x: ${startX}; --mobile-end-x: ${startX}"
266
- ?data-starting-style=${this.#startingStyle}
267
- ?data-ending-style=${this.#endingStyle}
268
- @keydown=${this.#onMobileKeyDown}
269
- >
270
- <slot></slot>
271
- </div>
272
- `;
273
- }
274
- if (ctx.collapsible === "none") {
275
- return html `
276
- <div class="DesktopOuter" part="desktop-outer">
277
- <div class="DesktopInner" part="desktop-inner">
278
- <slot></slot>
279
- </div>
280
- </div>
281
- `;
282
- }
283
- return html `
284
- <div class="DesktopOuter" part="desktop-outer">
285
- <div class="DesktopInner" part="desktop-inner">
286
- <slot></slot>
287
- </div>
288
- </div>
289
- `;
290
- }
291
- };
292
- })();
293
- export { DuiSidebar };
93
+ export class DuiSidebar extends DuiSidebarPrimitive {
94
+ static styles = [...DuiSidebarPrimitive.styles, styles];
95
+ }
96
+ customElements.define(DuiSidebar.tagName, DuiSidebar);
package/slider/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { DuiSlider, valueChangeEvent, valueCommittedEvent } from "./slider.js";
2
- export { DuiSlider, valueChangeEvent, valueCommittedEvent };
3
- export declare const sliderFamily: (typeof DuiSlider)[];
1
+ import "./slider.js";
2
+ export { DuiSlider } from "./slider.js";
3
+ export { valueChangeEvent, valueCommittedEvent } from "@deepfuture/dui-primitives/slider";
package/slider/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { DuiSlider, valueChangeEvent, valueCommittedEvent } from "./slider.js";
2
- export { DuiSlider, valueChangeEvent, valueCommittedEvent };
3
- export const sliderFamily = [DuiSlider];
1
+ import "./slider.js";
2
+ export { DuiSlider } from "./slider.js";
3
+ export { valueChangeEvent, valueCommittedEvent } from "@deepfuture/dui-primitives/slider";
@@ -1,47 +1,5 @@
1
- /** Ported from original DUI: deep-future-app/app/client/components/dui/slider */
2
- import { LitElement, type TemplateResult } from "lit";
3
- export declare const valueChangeEvent: (detail: {
4
- value: number;
5
- }) => CustomEvent<{
6
- value: number;
7
- }>;
8
- export declare const valueCommittedEvent: (detail: {
9
- value: number;
10
- }) => CustomEvent<{
11
- value: number;
12
- }>;
13
- /**
14
- * A slider for selecting numeric values within a range.
15
- *
16
- * Supports pointer drag, keyboard navigation (arrows, Page Up/Down, Home/End),
17
- * a hidden native range input for accessibility, and an optional click-to-type
18
- * value readout (enabled via the `field` variant).
19
- */
20
- export declare class DuiSlider extends LitElement {
21
- #private;
22
- static tagName: "dui-slider";
23
- static formAssociated: boolean;
1
+ import { DuiSliderPrimitive } from "@deepfuture/dui-primitives/slider";
2
+ import "../_install.js";
3
+ export declare class DuiSlider extends DuiSliderPrimitive {
24
4
  static styles: import("lit").CSSResult[];
25
- constructor();
26
- /** Current value. */
27
- accessor value: number;
28
- /** Minimum value. */
29
- accessor min: number;
30
- /** Maximum value. */
31
- accessor max: number;
32
- /** Step increment. */
33
- accessor step: number;
34
- /** Whether the slider is disabled. */
35
- accessor disabled: boolean;
36
- /** Name for form submission. */
37
- accessor name: string;
38
- /** Label text displayed by the slider. */
39
- accessor label: string;
40
- /** Unit suffix on the value readout (e.g. `m`, `°`, `%`). */
41
- accessor unit: string;
42
- /** Decimal places for value readout. Auto-inferred from `step` if not set. */
43
- accessor precision: number | undefined;
44
- willUpdate(): void;
45
- disconnectedCallback(): void;
46
- render(): TemplateResult;
47
5
  }