@visitwonders/assembly 0.2.0 → 0.3.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.
@@ -1,2 +1,3 @@
1
+ export { default as SortableList } from './sortable-list';
1
2
  export { default as Table } from './table';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,33 @@
1
+ import Component from '@glimmer/component';
2
+ import type { DragDropEvents } from '@arthur5005/dnd-kit-ember';
3
+ export interface SortableListSignature<T> {
4
+ Element: HTMLDivElement;
5
+ Args: {
6
+ /** Array of items to render */
7
+ items: T[];
8
+ /** Unique key for each item (receives item, returns string) */
9
+ key: (item: T) => string;
10
+ /** Called with reordered items during drag (for visual feedback) and on drop (final state) */
11
+ onReorder: (items: T[]) => void;
12
+ /** Sort direction */
13
+ direction?: 'vertical' | 'horizontal';
14
+ /** Disable reordering */
15
+ isDisabled?: boolean;
16
+ };
17
+ Blocks: {
18
+ default: [{
19
+ item: T;
20
+ index: number;
21
+ }];
22
+ };
23
+ }
24
+ export default class SortableList<T> extends Component<SortableListSignature<T>> {
25
+ snapshot: T[];
26
+ get direction(): "vertical" | "horizontal";
27
+ get isDisabled(): boolean;
28
+ get items(): T[];
29
+ handleDragStart: () => void;
30
+ handleDragOver: (event: Parameters<DragDropEvents["dragover"]>[0]) => void;
31
+ handleDragEnd: (event: Parameters<DragDropEvents["dragend"]>[0]) => void;
32
+ }
33
+ //# sourceMappingURL=sortable-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortable-list.d.ts","sourceRoot":"","sources":["../../src/data/sortable-list.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQhE,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,+BAA+B;QAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;QACX,+DAA+D;QAC/D,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QACzB,8FAA8F;QAC9F,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;QAChC,qBAAqB;QACrB,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;QACtC,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,CAAC,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvC,CAAC;CACH;AAMD,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,CAAC,CAAE,SAAQ,SAAS,CACpD,qBAAqB,CAAC,CAAC,CAAC,CACzB;IACU,QAAQ,EAAE,CAAC,EAAE,CAAM;IAE5B,IAAI,SAAS,8BAEZ;IAED,IAAI,UAAU,YAEb;IAED,IAAI,KAAK,QAER;IAED,eAAe,aAEb;IAEF,cAAc,UAAW,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAMhE;IAEF,aAAa,UAAW,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAI9D;CA8EH"}
@@ -14,7 +14,7 @@ export interface StackSignature {
14
14
  };
15
15
  }
16
16
  export default class Stack extends Component<StackSignature> {
17
- get gap(): "sm" | "md" | "lg" | "none" | "xs" | "xl";
17
+ get gap(): "sm" | "md" | "lg" | "xs" | "xl" | "none";
18
18
  get align(): "center" | "end" | "start" | "stretch" | "baseline";
19
19
  get justify(): "center" | "end" | "start" | "between";
20
20
  get wrap(): boolean;
@@ -6,6 +6,7 @@ export interface TextSignature {
6
6
  size?: 'xs' | 'sm' | 'md' | 'lg';
7
7
  weight?: 'regular' | 'medium' | 'semibold' | 'bold';
8
8
  tone?: 'primary' | 'secondary' | 'muted' | 'critical' | 'success' | 'warning' | 'inherit';
9
+ monospace?: boolean;
9
10
  as?: 'span' | 'p' | 'label' | 'strong' | 'em' | 'div';
10
11
  align?: 'left' | 'center' | 'right';
11
12
  truncate?: boolean;
@@ -40,6 +41,7 @@ export default class Text extends Component<TextSignature> {
40
41
  };
41
42
  get size(): "sm" | "md" | "lg" | "xs";
42
43
  get weight(): "bold" | "medium" | "semibold" | "regular";
44
+ get monospace(): boolean;
43
45
  get tone(): "primary" | "critical" | "success" | "warning" | "secondary" | "muted" | "inherit";
44
46
  get align(): "left" | "center" | "right";
45
47
  get truncate(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/typography/text.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;QACzE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;QACpD,IAAI,CAAC,EACD,SAAS,GACT,WAAW,GACX,OAAO,GACP,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;QACtD,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAClD,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;KAC/D,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAWD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,SAAS,CAAC,aAAa,CAAC;IACxD,IAAI,eAAe;;;;;;;;;;;;;;;;;;MAElB;IAED,IAAI,IAAI,8BAEP;IAED,IAAI,MAAM,+CAET;IAED,IAAI,IAAI,uFAEP;IAED,IAAI,KAAK,gCAER;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,IAAI,+CAEP;IAED,IAAI,UAAU,0CAEb;IAED,IAAI,SAAS,sDAEZ;CAuCF"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/typography/text.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;QACzE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;QACpD,IAAI,CAAC,EACD,SAAS,GACT,WAAW,GACX,OAAO,GACP,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;QACtD,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAClD,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;KAC/D,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAWD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,SAAS,CAAC,aAAa,CAAC;IACxD,IAAI,eAAe;;;;;;;;;;;;;;;;;;MAElB;IAED,IAAI,IAAI,8BAEP;IAED,IAAI,MAAM,+CAET;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,IAAI,uFAEP;IAED,IAAI,KAAK,gCAER;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,IAAI,+CAEP;IAED,IAAI,UAAU,0CAEb;IAED,IAAI,SAAS,sDAEZ;CAwCF"}
@@ -0,0 +1 @@
1
+ export { default } from "@visitwonders/assembly/data/sortable-list";
@@ -1,2 +1,3 @@
1
+ export { default as SortableList } from './sortable-list.js';
1
2
  export { default as Table } from './table.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,89 @@
1
+ /* <inline>/src/data/sortable-list-css-211fcfeedc08052ccbac7f51549ce0b1.css */
2
+
3
+ .sortable-list_ebb0a8898 {
4
+ display: flex;
5
+ flex-direction: column;
6
+ background: var(--color-bg-surface);
7
+ }
8
+
9
+ .sortable-list_ebb0a8898[data-direction="horizontal"] {
10
+ flex-direction: row;
11
+ }
12
+
13
+ .sortable-item_ebb0a8898 {
14
+ position: relative;
15
+ display: flex;
16
+ align-items: center;
17
+ gap: var(--spacing-3);
18
+ padding: var(--spacing-3) var(--spacing-4) var(--spacing-3) var(--spacing-10);
19
+ background: var(--color-bg-surface);
20
+ border: var(--border-width-1) solid var(--color-border-subtle);
21
+ border-radius: var(--radius-md);
22
+ user-select: none;
23
+ }
24
+
25
+ .sortable-item_ebb0a8898[data-disabled="true"] {
26
+ padding-left: var(--spacing-4);
27
+ }
28
+
29
+ /* Collapse borders between stacked items */
30
+ .sortable-item_ebb0a8898 + .sortable-item_ebb0a8898 {
31
+ margin-top: calc(-1 * var(--border-width-1));
32
+ border-top-left-radius: 0;
33
+ border-top-right-radius: 0;
34
+ }
35
+
36
+ .sortable-item_ebb0a8898:has(+ .sortable-item_ebb0a8898) {
37
+ border-bottom-left-radius: 0;
38
+ border-bottom-right-radius: 0;
39
+ }
40
+
41
+ .sortable-list_ebb0a8898[data-direction="horizontal"] .sortable-item_ebb0a8898 + .sortable-item_ebb0a8898 {
42
+ margin-top: 0;
43
+ margin-left: calc(-1 * var(--border-width-1));
44
+ border-top-left-radius: 0;
45
+ border-bottom-left-radius: 0;
46
+ border-top-right-radius: var(--radius-md);
47
+ border-bottom-right-radius: var(--radius-md);
48
+ }
49
+
50
+ .sortable-list_ebb0a8898[data-direction="horizontal"] .sortable-item_ebb0a8898:has(+ .sortable-item_ebb0a8898) {
51
+ border-top-right-radius: 0;
52
+ border-bottom-right-radius: 0;
53
+ border-top-left-radius: var(--radius-md);
54
+ border-bottom-left-radius: var(--radius-md);
55
+ }
56
+
57
+ .sortable-handle_ebb0a8898 {
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ bottom: 0;
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ width: var(--spacing-10);
66
+ color: var(--color-text-tertiary);
67
+ cursor: grab;
68
+ transition:
69
+ color 0.15s ease,
70
+ background-color 0.15s ease;
71
+ }
72
+
73
+ .sortable-handle_ebb0a8898:hover {
74
+ color: var(--color-text);
75
+ }
76
+
77
+ .sortable-handle_ebb0a8898:active {
78
+ cursor: grabbing;
79
+ }
80
+
81
+ .sortable-list_ebb0a8898[data-disabled="true"] .sortable-handle_ebb0a8898 {
82
+ color: var(--color-text-disabled);
83
+ cursor: not-allowed;
84
+ }
85
+
86
+ .sortable-content_ebb0a8898 {
87
+ flex: 1;
88
+ min-width: 0;
89
+ }
@@ -0,0 +1,62 @@
1
+ import "./sortable-list-css-211fcfeedc08052ccbac7f51549ce0b1.css"
2
+ import Component from '@glimmer/component';
3
+ import { tracked } from '@glimmer/tracking';
4
+ import { hash } from '@ember/helper';
5
+ import { move, DragDrop } from '@arthur5005/dnd-kit-ember';
6
+ import Icon from '../media/icon.js';
7
+ import { GripVertical } from 'lucide';
8
+ import { precompileTemplate } from '@ember/template-compilation';
9
+ import { setComponentTemplate } from '@ember/component';
10
+ import { g, i } from 'decorator-transforms/runtime';
11
+
12
+ ;
13
+
14
+ // ============================================================================
15
+ // Component
16
+ // ============================================================================
17
+ class SortableList extends Component {
18
+ static {
19
+ g(this.prototype, "snapshot", [tracked], function () {
20
+ return [];
21
+ });
22
+ }
23
+ #snapshot = (i(this, "snapshot"), void 0);
24
+ get direction() {
25
+ return this.args.direction ?? 'vertical';
26
+ }
27
+ get isDisabled() {
28
+ return this.args.isDisabled ?? false;
29
+ }
30
+ get items() {
31
+ return this.args.items;
32
+ }
33
+ handleDragStart = () => {
34
+ this.snapshot = [...this.args.items];
35
+ };
36
+ handleDragOver = event => {
37
+ if (this.isDisabled) return;
38
+ // Cast needed: move() expects UniqueIdentifier[] but our items are generic T[]
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ const items = move(this.args.items, event);
41
+ this.args.onReorder(items);
42
+ };
43
+ handleDragEnd = event => {
44
+ if (event.canceled) {
45
+ this.args.onReorder([...this.snapshot]);
46
+ }
47
+ };
48
+ static {
49
+ setComponentTemplate(precompileTemplate("\n\n<div class=\"sortable-list_ebb0a8898\" data-direction={{this.direction}} data-disabled={{if this.isDisabled \"true\"}} data-test-sortable-list ...attributes>\n <DragDrop @onDragStart={{this.handleDragStart}} @onDragOver={{this.handleDragOver}} @onDragEnd={{this.handleDragEnd}} as |dd|>\n {{#each this.items as |item index|}}\n {{#let (@key item) as |itemId|}}\n <div class=\"sortable-item_ebb0a8898\" data-disabled={{if this.isDisabled \"true\"}} data-test-sortable-item={{itemId}} {{dd.sortable id=itemId index=index disabled=this.isDisabled}}>\n {{#unless this.isDisabled}}\n <span class=\"sortable-handle_ebb0a8898\" role=\"button\" aria-label=\"Reorder item\" data-test-sortable-handle {{dd.handle id=itemId}}>\n <Icon @icon={{GripVertical}} @size=\"sm\" />\n </span>\n {{/unless}}\n <div class=\"sortable-content_ebb0a8898\">\n {{yield (hash item=item index=index)}}\n </div>\n </div>\n {{/let}}\n {{/each}}\n </DragDrop>\n</div>", {
50
+ strictMode: true,
51
+ scope: () => ({
52
+ DragDrop,
53
+ Icon,
54
+ GripVertical,
55
+ hash
56
+ })
57
+ }), this);
58
+ }
59
+ }
60
+
61
+ export { SortableList as default };
62
+ //# sourceMappingURL=sortable-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortable-list.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -6,7 +6,7 @@
6
6
  .table_e4aed93fe {
7
7
  width: 100%;
8
8
  border-collapse: collapse;
9
- font-size: var(--font-size-sm);
9
+ font-size: var(--font-size-md);
10
10
  color: var(--color-text);
11
11
  background-color: var(--color-bg-surface);
12
12
  }
@@ -151,7 +151,7 @@
151
151
  }
152
152
 
153
153
  .row_e4aed93fe {
154
- border-bottom: var(--border-width-1) solid var(--color-border);
154
+ border-bottom: var(--border-width-1) solid var(--color-border-subtle);
155
155
  transition: background-color 0.1s ease;
156
156
  }
157
157
 
@@ -1,4 +1,4 @@
1
- /* <inline>/src/typography/text-css-73e03f1b750b32d7064d4ef87562289c.css */
1
+ /* <inline>/src/typography/text-css-935f55e9cd74b06a5ce61330c4c79ef9.css */
2
2
 
3
3
  .text_e5637097c {
4
4
  margin: 0;
@@ -22,6 +22,11 @@
22
22
  line-height: var(--line-height-normal);
23
23
  }
24
24
 
25
+ /* Monospace */
26
+ .text_e5637097c[data-monospace="true"] {
27
+ font-family: var(--font-family-mono);
28
+ }
29
+
25
30
  /* Weight */
26
31
  .text_e5637097c[data-weight="regular"] {
27
32
  font-weight: var(--font-weight-regular);
@@ -1,4 +1,4 @@
1
- import "./text-css-73e03f1b750b32d7064d4ef87562289c.css"
1
+ import "./text-css-935f55e9cd74b06a5ce61330c4c79ef9.css"
2
2
  import Component from '@glimmer/component';
3
3
  import { element } from 'ember-element-helper';
4
4
  import { or } from 'ember-truth-helpers';
@@ -43,6 +43,9 @@ class Text extends Component {
43
43
  get weight() {
44
44
  return this.args.weight ?? this.variantDefaults.weight;
45
45
  }
46
+ get monospace() {
47
+ return this.args.monospace ?? false;
48
+ }
46
49
  get tone() {
47
50
  return this.args.tone ?? 'primary';
48
51
  }
@@ -62,7 +65,7 @@ class Text extends Component {
62
65
  return this.args.transform ?? 'none';
63
66
  }
64
67
  static {
65
- setComponentTemplate(precompileTemplate("\n\n{{#let (element (or @as \"span\")) as |Tag|}}\n <Tag class=\"text_e5637097c\" data-size={{this.size}} data-weight={{this.weight}} data-tone={{this.tone}} data-align={{this.align}} data-truncate={{this.truncate}} data-max-lines={{@maxLines}} data-wrap={{this.wrap}} data-decoration={{this.decoration}} data-transform={{this.transform}} ...attributes>\n {{yield}}\n </Tag>\n{{/let}}", {
68
+ setComponentTemplate(precompileTemplate("\n\n{{#let (element (or @as \"span\")) as |Tag|}}\n <Tag class=\"text_e5637097c\" data-size={{this.size}} data-monospace={{if this.monospace \"true\"}} data-weight={{this.weight}} data-tone={{this.tone}} data-align={{this.align}} data-truncate={{this.truncate}} data-max-lines={{@maxLines}} data-wrap={{this.wrap}} data-decoration={{this.decoration}} data-transform={{this.transform}} ...attributes>\n {{yield}}\n </Tag>\n{{/let}}", {
66
69
  strictMode: true,
67
70
  scope: () => ({
68
71
  element,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visitwonders/assembly",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "The default blueprint for Embroider v2 addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -93,6 +93,7 @@
93
93
  "test": "echo 'A v2 addon does not have tests, run tests in showcase'"
94
94
  },
95
95
  "dependencies": {
96
+ "@arthur5005/dnd-kit-ember": "^0.1.2",
96
97
  "@embroider/addon-shim": "^1.8.9",
97
98
  "@floating-ui/dom": "^1.6.13",
98
99
  "decorator-transforms": "^2.2.2",
@@ -102,6 +103,7 @@
102
103
  "flagpack-core": "^2.1.0"
103
104
  },
104
105
  "peerDependencies": {
106
+ "@arthur5005/dnd-kit-ember": "^0.1.2",
105
107
  "@glimmer/component": "^2.0.0",
106
108
  "date-fns": "^4.1.0",
107
109
  "ember-truth-helpers": "^4.0.3",
@@ -109,7 +111,6 @@
109
111
  },
110
112
  "devDependencies": {
111
113
  "@babel/core": "^7.25.2",
112
- "date-fns": "^4.1.0",
113
114
  "@babel/eslint-parser": "^7.25.1",
114
115
  "@babel/plugin-transform-typescript": "^7.25.2",
115
116
  "@babel/runtime": "^7.25.6",
@@ -124,6 +125,7 @@
124
125
  "@rollup/plugin-babel": "^6.0.4",
125
126
  "babel-plugin-ember-template-compilation": "^3.1.0",
126
127
  "concurrently": "^9.0.1",
128
+ "date-fns": "^4.1.0",
127
129
  "ember-scoped-css": "^2.0.4",
128
130
  "ember-source": "^6.8.0",
129
131
  "ember-template-lint": "^6.0.0",
@@ -155,6 +157,7 @@
155
157
  "./action/button-group.js": "./dist/_app_/action/button-group.js",
156
158
  "./action/button.js": "./dist/_app_/action/button.js",
157
159
  "./action/link.js": "./dist/_app_/action/link.js",
160
+ "./data/sortable-list.js": "./dist/_app_/data/sortable-list.js",
158
161
  "./data/table.js": "./dist/_app_/data/table.js",
159
162
  "./form/calendar.js": "./dist/_app_/form/calendar.js",
160
163
  "./form/checkbox-group.js": "./dist/_app_/form/checkbox-group.js",