@maggioli-design-system/mds-table-row 5.3.1 → 5.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.
@@ -65,6 +65,23 @@ export class FloatingController {
65
65
  return { transformOrigin: 'center top' };
66
66
  }
67
67
  };
68
+ this.convertToTransformOrigin = (position) => {
69
+ const positions = {
70
+ top: 'center bottom',
71
+ right: 'left center',
72
+ bottom: 'center top',
73
+ left: 'right center',
74
+ 'bottom-end': 'top right',
75
+ 'bottom-start': 'top left',
76
+ 'left-end': 'right bottom',
77
+ 'left-start': 'right top',
78
+ 'right-end': 'left bottom',
79
+ 'right-start': 'left top',
80
+ 'top-end': 'bottom right',
81
+ 'top-start': 'bottom left',
82
+ };
83
+ return positions[position];
84
+ };
68
85
  this.calculatePosition = () => {
69
86
  if (!this._caller)
70
87
  return;
@@ -99,6 +116,8 @@ export class FloatingController {
99
116
  Object.assign(this._host.style, {
100
117
  left: `${x}px`,
101
118
  top: `${y}px`,
119
+ transformOrigin: this.convertToTransformOrigin(placement),
120
+ position: this._host.strategy,
102
121
  });
103
122
  const arrowStyle = {};
104
123
  const arrowPosition = {
@@ -133,12 +152,14 @@ export class FloatingController {
133
152
  return caller;
134
153
  }
135
154
  updatePosition() {
136
- if (this.cleanupAutoUpdate)
137
- this.cleanupAutoUpdate();
138
- this.cleanupAutoUpdate = autoUpdate(this._caller, this._host, this.calculatePosition);
155
+ if (this._host.visible) {
156
+ this.dismiss(); // to clean the old update function before update function
157
+ this.cleanupAutoUpdate = autoUpdate(this._caller, this._host, this.calculatePosition);
158
+ }
139
159
  }
140
160
  dismiss() {
141
- this.cleanupAutoUpdate();
161
+ if (this.cleanupAutoUpdate)
162
+ this.cleanupAutoUpdate();
142
163
  }
143
164
  }
144
165
  export class Backdrop {
@@ -22,8 +22,9 @@ export class KeyboardManager {
22
22
  this.elements.delete(name);
23
23
  };
24
24
  this.attachClickBehavior = (name = 'element') => {
25
- var _a;
26
- (_a = this.elements.get(name)) === null || _a === void 0 ? void 0 : _a.addEventListener('keydown', this.handleClickBehaviorDispatchEvent);
25
+ var _a, _b;
26
+ (_a = this.elements.get(name)) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', this.handleClickBehaviorDispatchEvent);
27
+ (_b = this.elements.get(name)) === null || _b === void 0 ? void 0 : _b.addEventListener('keydown', this.handleClickBehaviorDispatchEvent);
27
28
  };
28
29
  this.detachClickBehavior = (name = 'element') => {
29
30
  var _a;
@@ -7,6 +7,8 @@ const buttonVariantDictionary = [
7
7
  'secondary',
8
8
  'success',
9
9
  'warning',
10
+ 'google',
11
+ 'apple',
10
12
  ];
11
13
  const buttonToneVariantDictionary = [
12
14
  'strong',
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-03-10T12:58:27",
2
+ "timestamp": "2025-04-02T09:03:05",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.27.2",
package/dist/stats.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-03-10T12:58:27",
2
+ "timestamp": "2025-04-02T09:03:06",
3
3
  "compiler": {
4
4
  "name": "node",
5
5
  "version": "22.11.0"
@@ -9,11 +9,11 @@
9
9
  "fsNamespace": "mds-table-row",
10
10
  "components": 1,
11
11
  "entries": 1,
12
- "bundles": 101,
12
+ "bundles": 102,
13
13
  "outputs": [
14
14
  {
15
15
  "name": "dist-collection",
16
- "files": 53,
16
+ "files": 54,
17
17
  "generatedFiles": [
18
18
  "./dist/collection/common/aria.js",
19
19
  "./dist/collection/common/browser.js",
@@ -59,6 +59,7 @@
59
59
  "./dist/collection/type/floating-ui.js",
60
60
  "./dist/collection/type/form-rel.js",
61
61
  "./dist/collection/type/header-bar.js",
62
+ "./dist/collection/type/input-tip.js",
62
63
  "./dist/collection/type/input.js",
63
64
  "./dist/collection/type/keyboard.js",
64
65
  "./dist/collection/type/loading.js",
@@ -728,6 +729,7 @@
728
729
  "./src/type/floating-ui.ts": [],
729
730
  "./src/type/form-rel.ts": [],
730
731
  "./src/type/header-bar.ts": [],
732
+ "./src/type/input-tip.ts": [],
731
733
  "./src/type/input.ts": [],
732
734
  "./src/type/keyboard.ts": [],
733
735
  "./src/type/loading.ts": [],
@@ -27,6 +27,7 @@ export declare class FloatingController {
27
27
  private readonly arrowInset;
28
28
  private readonly arrowTransform;
29
29
  private readonly arrowTransformOrigin;
30
+ private convertToTransformOrigin;
30
31
  private readonly calculatePosition;
31
32
  updatePosition(): void;
32
33
  dismiss(): void;
@@ -2,4 +2,4 @@ export type ButtonType = 'a' | 'button' | 'reset' | 'submit';
2
2
  export type ButtonTargetType = 'self' | 'blank';
3
3
  export type ButtonSizeType = 'sm' | 'md' | 'lg' | 'xl';
4
4
  export type ButtonIconPositionType = 'left' | 'right';
5
- export type ButtonVariantType = 'primary' | 'secondary' | 'dark' | 'light' | 'error' | 'info' | 'success' | 'warning';
5
+ export type ButtonVariantType = 'primary' | 'secondary' | 'dark' | 'light' | 'error' | 'info' | 'success' | 'warning' | 'google' | 'apple';
@@ -0,0 +1 @@
1
+ export type InputTipItemVariantType = 'count-almost' | 'count-almost-full' | 'count-empty' | 'count-full' | 'count-incomplete' | 'disabled' | 'readonly' | 'required' | 'required-success' | 'text';
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-03-10T10:32:58",
2
+ "timestamp": "2025-04-02T08:30:40",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.27.2",
@@ -318,7 +318,7 @@
318
318
  "path": "src/type/button.ts"
319
319
  },
320
320
  "src/type/button.ts::ButtonVariantType": {
321
- "declaration": "export type ButtonVariantType =\n | 'primary'\n | 'secondary'\n | 'dark'\n | 'light'\n | 'error'\n | 'info'\n | 'success'\n | 'warning'",
321
+ "declaration": "export type ButtonVariantType =\n | 'primary'\n | 'secondary'\n | 'dark'\n | 'light'\n | 'error'\n | 'info'\n | 'success'\n | 'warning'\n | 'google'\n | 'apple'",
322
322
  "docstring": "",
323
323
  "path": "src/type/button.ts"
324
324
  },
@@ -417,6 +417,11 @@
417
417
  "docstring": "",
418
418
  "path": "src/components/mds-horizontal-scroll/meta/types.ts"
419
419
  },
420
+ "src/components/mds-horizontal-scroll/meta/types.ts::NavigationType": {
421
+ "declaration": "export type NavigationType =\n | 'none'\n | 'scrollbar'\n | 'position'",
422
+ "docstring": "",
423
+ "path": "src/components/mds-horizontal-scroll/meta/types.ts"
424
+ },
420
425
  "src/components/mds-horizontal-scroll/meta/types.ts::SnapType": {
421
426
  "declaration": "export type SnapType =\n | 'center'\n | 'end'\n | 'none'\n | 'start'",
422
427
  "docstring": "",
@@ -512,10 +517,10 @@
512
517
  "docstring": "",
513
518
  "path": "src/components/mds-input-tip/meta/types.ts"
514
519
  },
515
- "src/components/mds-input-tip-item/meta/types.ts::InputTipItemVariantType": {
516
- "declaration": "export type InputTipItemVariantType =\n | 'required'\n | 'required-success'\n | 'disabled'\n | 'readonly'\n | 'text'",
520
+ "src/type/input-tip.ts::InputTipItemVariantType": {
521
+ "declaration": "export type InputTipItemVariantType =\n | 'count-almost'\n | 'count-almost-full'\n | 'count-empty'\n | 'count-full'\n | 'count-incomplete'\n | 'disabled'\n | 'readonly'\n | 'required'\n | 'required-success'\n | 'text'",
517
522
  "docstring": "",
518
- "path": "src/components/mds-input-tip-item/meta/types.ts"
523
+ "path": "src/type/input-tip.ts"
519
524
  },
520
525
  "src/components/mds-input-upload/meta/types.ts::AttachmentSort": {
521
526
  "declaration": "type AttachmentSort =\n 'status' |\n 'date'",
@@ -557,6 +562,11 @@
557
562
  "docstring": "",
558
563
  "path": "src/components/mds-modal/meta/types.ts"
559
564
  },
565
+ "src/components/mds-modal/meta/types.ts::ModalAnimationStyleType": {
566
+ "declaration": "export type ModalAnimationStyleType =\n | 'slide'\n | 'custom'\n | '3d'",
567
+ "docstring": "",
568
+ "path": "src/components/mds-modal/meta/types.ts"
569
+ },
560
570
  "src/components/mds-modal/meta/types.ts::ModalOverflowType": {
561
571
  "declaration": "export type ModalOverflowType =\n | 'auto'\n | 'manual'",
562
572
  "docstring": "",
@@ -622,20 +632,25 @@
622
632
  "docstring": "",
623
633
  "path": "src/components/mds-progress/meta/types.ts"
624
634
  },
625
- "src/components/mds-push-notification/meta/types.ts::NotificationDateFormatType": {
635
+ "src/components/mds-push-notification/meta/event-detail.ts::MdsPushNotificationEventDetail": {
636
+ "declaration": "export interface MdsPushNotificationEventDetail {\n visible: boolean\n}",
637
+ "docstring": "",
638
+ "path": "src/components/mds-push-notification/meta/event-detail.ts"
639
+ },
640
+ "src/components/mds-push-notification-item/meta/types.ts::NotificationItemDateFormatType": {
626
641
  "declaration": "string",
627
642
  "docstring": "",
628
- "path": "src/components/mds-push-notification/meta/types.ts"
643
+ "path": "src/components/mds-push-notification-item/meta/types.ts"
629
644
  },
630
- "src/components/mds-push-notification/meta/types.ts::NotificationPreviewType": {
631
- "declaration": "export type NotificationPreviewType =\n | 'avatar'\n | 'image'",
645
+ "src/components/mds-push-notification-item/meta/types.ts::NotificationItemPreviewType": {
646
+ "declaration": "export type NotificationItemPreviewType =\n | 'avatar'\n | 'image'",
632
647
  "docstring": "",
633
- "path": "src/components/mds-push-notification/meta/types.ts"
648
+ "path": "src/components/mds-push-notification-item/meta/types.ts"
634
649
  },
635
- "src/components/mds-push-notification/meta/event-detail.ts::MdsPushNotificationEventDetail": {
636
- "declaration": "export interface MdsPushNotificationEventDetail {\n id: string;\n}",
650
+ "src/components/mds-push-notification-item/meta/event-detail.ts::MdsPushNotificationItemEventDetail": {
651
+ "declaration": "export interface MdsPushNotificationItemEventDetail {\n id: string;\n}",
637
652
  "docstring": "",
638
- "path": "src/components/mds-push-notification/meta/event-detail.ts"
653
+ "path": "src/components/mds-push-notification-item/meta/event-detail.ts"
639
654
  },
640
655
  "src/type/text.ts::TypographyHeadingTagType": {
641
656
  "declaration": "export type TypographyHeadingTagType =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maggioli-design-system/mds-table-row",
3
- "version": "5.3.1",
3
+ "version": "5.4.0",
4
4
  "description": "mds-table-row is a web-component from Magma Design System, built with StencilJS, TypeScript, Storybook. It's based on the web-component standard and it's designed to be agnostic from the JavaScript framework you are using.",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -23,8 +23,8 @@
23
23
  "prepublishOnly": "npm run build"
24
24
  },
25
25
  "dependencies": {
26
- "@maggioli-design-system/mds-table-cell": "5.2.0",
27
- "@maggioli-design-system/styles": "15.9.0",
26
+ "@maggioli-design-system/mds-table-cell": "5.3.0",
27
+ "@maggioli-design-system/styles": "15.9.1",
28
28
  "@stencil/core": "4.27.2"
29
29
  },
30
30
  "license": "MIT",
@@ -7,6 +7,7 @@ import {
7
7
  Middleware,
8
8
  MiddlewareData,
9
9
  offset,
10
+ Placement,
10
11
  shift,
11
12
  } from '@floating-ui/dom'
12
13
  import { FloatingUIPlacement, FloatingUIStrategy } from '@type/floating-ui'
@@ -138,6 +139,24 @@ export class FloatingController {
138
139
  }
139
140
  }
140
141
 
142
+ private convertToTransformOrigin = (position: Placement): string => {
143
+ const positions = {
144
+ top: 'center bottom',
145
+ right: 'left center',
146
+ bottom: 'center top',
147
+ left: 'right center',
148
+ 'bottom-end': 'top right',
149
+ 'bottom-start': 'top left',
150
+ 'left-end': 'right bottom',
151
+ 'left-start': 'right top',
152
+ 'right-end': 'left bottom',
153
+ 'right-start': 'left top',
154
+ 'top-end': 'bottom right',
155
+ 'top-start': 'bottom left',
156
+ }
157
+ return positions[position]
158
+ }
159
+
141
160
  private readonly calculatePosition = (): void => {
142
161
  if (!this._caller) return
143
162
 
@@ -181,6 +200,8 @@ export class FloatingController {
181
200
  Object.assign(this._host.style, {
182
201
  left: `${x}px`,
183
202
  top: `${y}px`,
203
+ transformOrigin: this.convertToTransformOrigin(placement),
204
+ position: this._host.strategy,
184
205
  })
185
206
 
186
207
  const arrowStyle = {}
@@ -204,12 +225,14 @@ export class FloatingController {
204
225
  }
205
226
 
206
227
  updatePosition (): void {
207
- if (this.cleanupAutoUpdate) this.cleanupAutoUpdate()
208
- this.cleanupAutoUpdate = autoUpdate(this._caller, this._host, this.calculatePosition)
228
+ if (this._host.visible) {
229
+ this.dismiss() // to clean the old update function before update function
230
+ this.cleanupAutoUpdate = autoUpdate(this._caller, this._host, this.calculatePosition)
231
+ }
209
232
  }
210
233
 
211
234
  dismiss (): void {
212
- this.cleanupAutoUpdate()
235
+ if (this.cleanupAutoUpdate) this.cleanupAutoUpdate()
213
236
  }
214
237
  }
215
238
 
@@ -27,6 +27,7 @@ export class KeyboardManager {
27
27
  }
28
28
 
29
29
  attachClickBehavior = (name = 'element'): void => {
30
+ this.elements.get(name)?.removeEventListener('keydown', this.handleClickBehaviorDispatchEvent)
30
31
  this.elements.get(name)?.addEventListener('keydown', this.handleClickBehaviorDispatchEvent)
31
32
  }
32
33
 
@@ -7,6 +7,8 @@ const buttonVariantDictionary = [
7
7
  'secondary',
8
8
  'success',
9
9
  'warning',
10
+ 'google',
11
+ 'apple',
10
12
  ]
11
13
 
12
14
  const buttonToneVariantDictionary = [
@@ -1,5 +1,6 @@
1
1
  [
2
2
  "mdi/alien",
3
+ "mdi/apple",
3
4
  "mdi/apple-keyboard-shift",
4
5
  "mdi/barley",
5
6
  "mdi/baseball",
@@ -7,6 +8,7 @@
7
8
  "mdi/delete",
8
9
  "mdi/dots-vertical",
9
10
  "mdi/email",
11
+ "mdi/eye-off-outline",
10
12
  "mdi/file-document-remove-outline",
11
13
  "mdi/file-download-outline",
12
14
  "mdi/file-upload-outline",
@@ -337,12 +339,14 @@
337
339
  "mi/baseline/audiotrack",
338
340
  "mi/baseline/auto-awesome",
339
341
  "mi/baseline/badge",
342
+ "mi/baseline/block",
340
343
  "mi/baseline/book",
341
344
  "mi/baseline/border-all",
342
345
  "mi/baseline/broken-image",
343
346
  "mi/baseline/call",
344
347
  "mi/baseline/cancel",
345
348
  "mi/baseline/category",
349
+ "mi/baseline/check",
346
350
  "mi/baseline/check-box",
347
351
  "mi/baseline/check-box-outline-blank",
348
352
  "mi/baseline/check-circle",
@@ -400,6 +404,7 @@
400
404
  "mi/baseline/radio-button-unchecked",
401
405
  "mi/baseline/remove",
402
406
  "mi/baseline/remove-circle",
407
+ "mi/baseline/remove-red-eye",
403
408
  "mi/baseline/route",
404
409
  "mi/baseline/send",
405
410
  "mi/baseline/settings",
@@ -410,6 +415,7 @@
410
415
  "mi/baseline/terminal",
411
416
  "mi/baseline/timer",
412
417
  "mi/baseline/tv",
418
+ "mi/baseline/undo",
413
419
  "mi/baseline/unfold-less",
414
420
  "mi/baseline/unfold-more",
415
421
  "mi/baseline/vertical-align-bottom",
@@ -27,3 +27,5 @@ export type ButtonVariantType =
27
27
  | 'info'
28
28
  | 'success'
29
29
  | 'warning'
30
+ | 'google'
31
+ | 'apple'
@@ -0,0 +1,11 @@
1
+ export type InputTipItemVariantType =
2
+ | 'count-almost'
3
+ | 'count-almost-full'
4
+ | 'count-empty'
5
+ | 'count-full'
6
+ | 'count-incomplete'
7
+ | 'disabled'
8
+ | 'readonly'
9
+ | 'required'
10
+ | 'required-success'
11
+ | 'text'