@visitwonders/assembly 0.2.0 → 0.4.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"}
@@ -0,0 +1,32 @@
1
+ import Component from '@glimmer/component';
2
+ export interface DisplayFieldSignature {
3
+ Element: HTMLDivElement;
4
+ Args: {
5
+ /** Label text (required) */
6
+ label: string;
7
+ /** Description text displayed below the value or input */
8
+ description?: string;
9
+ /** Whether the field is in edit mode */
10
+ editing?: boolean;
11
+ /** Info tooltip text shown next to the label */
12
+ labelInfo?: string;
13
+ /** Unique identifier (auto-generated if not provided) */
14
+ id?: string;
15
+ };
16
+ Blocks: {
17
+ /** Read-only value display (shown when not editing) */
18
+ value: [];
19
+ /** Inline action (e.g., "Change" link, shown when not editing) */
20
+ action: [];
21
+ /** Edit mode content (e.g., input field + actions, shown when editing) */
22
+ input: [];
23
+ /** Rich tooltip content shown next to the label */
24
+ info: [];
25
+ };
26
+ }
27
+ export default class DisplayField extends Component<DisplayFieldSignature> {
28
+ id: string;
29
+ get descriptionId(): string;
30
+ get isEditing(): boolean;
31
+ }
32
+ //# sourceMappingURL=display-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-field.d.ts","sourceRoot":"","sources":["../../src/form/display-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wCAAwC;QACxC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,yDAAyD;QACzD,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QACN,uDAAuD;QACvD,KAAK,EAAE,EAAE,CAAC;QACV,kEAAkE;QAClE,MAAM,EAAE,EAAE,CAAC;QACX,0EAA0E;QAC1E,KAAK,EAAE,EAAE,CAAC;QACV,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS,CAAC,qBAAqB,CAAC;IACxE,EAAE,SAAiC;IAEnC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CAiGF"}
@@ -5,6 +5,7 @@ export { default as Control } from './control';
5
5
  export { default as CountrySelect } from './country-select';
6
6
  export { default as CountrySelectField } from './country-select-field';
7
7
  export { default as DatePicker } from './date-picker';
8
+ export { default as DisplayField } from './display-field';
8
9
  export { default as DatePickerField } from './date-picker-field';
9
10
  export { default as DateRangePicker } from './date-range-picker';
10
11
  export { default as DateRangePickerField } from './date-range-picker-field';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -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";
@@ -0,0 +1 @@
1
+ export { default } from "@visitwonders/assembly/form/display-field";
@@ -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
 
@@ -0,0 +1,48 @@
1
+ /* <inline>/src/form/display-field-css-890d9be4b5da61613fd017071f330735.css */
2
+
3
+ .display-field_e03c8ad71 {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--spacing-1);
7
+ width: 100%;
8
+ }
9
+
10
+ .display-field-inline_e03c8ad71 {
11
+ display: flex;
12
+ align-items: baseline;
13
+ gap: var(--spacing-2);
14
+ flex-wrap: wrap;
15
+ font-size: var(--font-size-sm);
16
+ line-height: var(--line-height-normal);
17
+ color: var(--color-text);
18
+ }
19
+
20
+ .display-field-label_e03c8ad71 {
21
+ font-weight: var(--font-weight-regular);
22
+ }
23
+
24
+ .display-field-label_e03c8ad71::after {
25
+ content: ':';
26
+ }
27
+
28
+ .display-field-value_e03c8ad71 {
29
+ font-weight: var(--font-weight-medium);
30
+ }
31
+
32
+ .display-field-input_e03c8ad71 {
33
+ display: flex;
34
+ flex-direction: column;
35
+ align-items: flex-start;
36
+ gap: var(--spacing-2);
37
+ }
38
+
39
+ .display-field-description_e03c8ad71 {
40
+ display: block;
41
+ font-size: var(--font-size-xs);
42
+ color: var(--color-text-secondary);
43
+ line-height: var(--line-height-normal);
44
+ }
45
+
46
+ .display-field-description_e03c8ad71:empty {
47
+ display: none;
48
+ }
@@ -0,0 +1,29 @@
1
+ import "./display-field-css-890d9be4b5da61613fd017071f330735.css"
2
+ import Component from '@glimmer/component';
3
+ import { guidFor } from '@ember/object/internals';
4
+ import Label from './label.js';
5
+ import { precompileTemplate } from '@ember/template-compilation';
6
+ import { setComponentTemplate } from '@ember/component';
7
+
8
+ ;
9
+
10
+ class DisplayField extends Component {
11
+ id = this.args.id ?? guidFor(this);
12
+ get descriptionId() {
13
+ return `${this.id}-description`;
14
+ }
15
+ get isEditing() {
16
+ return this.args.editing ?? false;
17
+ }
18
+ static {
19
+ setComponentTemplate(precompileTemplate("\n\n<div class=\"display-field_e03c8ad71\" data-editing={{if this.isEditing \"true\" \"false\"}} data-test-display-field ...attributes>\n {{#if this.isEditing}}\n {{#if (has-block \"info\")}}\n <Label @info={{@labelInfo}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </Label>\n {{else}}\n <Label @info={{@labelInfo}}>\n {{@label}}\n </Label>\n {{/if}}\n <div class=\"display-field-input_e03c8ad71\">\n {{yield to=\"input\"}}\n </div>\n {{else}}\n <div class=\"display-field-inline_e03c8ad71\" data-test-display-field-content>\n <span class=\"display-field-label_e03c8ad71\">{{@label}}</span>\n <span class=\"display-field-value_e03c8ad71\" data-test-display-field-value>\n {{yield to=\"value\"}}\n </span>\n {{#if (has-block \"action\")}}\n <span data-test-display-field-action>\n {{yield to=\"action\"}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if @description}}\n <span class=\"display-field-description_e03c8ad71\" id={{this.descriptionId}} data-test-display-field-description>\n {{@description}}\n </span>\n {{/if}}\n</div>", {
20
+ strictMode: true,
21
+ scope: () => ({
22
+ Label
23
+ })
24
+ }), this);
25
+ }
26
+ }
27
+
28
+ export { DisplayField as default };
29
+ //# sourceMappingURL=display-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-field.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ export { default as Control } from './control.js';
5
5
  export { default as CountrySelect } from './country-select.js';
6
6
  export { default as CountrySelectField } from './country-select-field.js';
7
7
  export { default as DatePicker } from './date-picker.js';
8
+ export { default as DisplayField } from './display-field.js';
8
9
  export { default as DatePickerField } from './date-picker-field.js';
9
10
  export { default as DateRangePicker } from './date-range-picker.js';
10
11
  export { default as DateRangePickerField } from './date-range-picker-field.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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.4.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",
@@ -167,6 +170,7 @@
167
170
  "./form/date-picker.js": "./dist/_app_/form/date-picker.js",
168
171
  "./form/date-range-picker-field.js": "./dist/_app_/form/date-range-picker-field.js",
169
172
  "./form/date-range-picker.js": "./dist/_app_/form/date-range-picker.js",
173
+ "./form/display-field.js": "./dist/_app_/form/display-field.js",
170
174
  "./form/error-message.js": "./dist/_app_/form/error-message.js",
171
175
  "./form/field.js": "./dist/_app_/form/field.js",
172
176
  "./form/fieldset.js": "./dist/_app_/form/fieldset.js",