@rosettadash/vue 0.1.2 → 0.1.3

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 (60) hide show
  1. package/package.json +8 -2
  2. package/src/domain/role-gate/role-gate.d.ts +21 -0
  3. package/src/domain/role-gate/role-gate.js +32 -4
  4. package/src/domain/role-gate/role-gate.js.map +1 -1
  5. package/src/domain/time-preset/time-preset.d.ts +4 -2
  6. package/src/domain/time-preset/time-preset.js +12 -2
  7. package/src/domain/time-preset/time-preset.js.map +1 -1
  8. package/src/index.d.ts +1 -0
  9. package/src/index.js +1 -0
  10. package/src/index.js.map +1 -1
  11. package/src/layout/scroll-region/index.d.ts +2 -0
  12. package/src/layout/scroll-region/index.js +2 -0
  13. package/src/layout/scroll-region/index.js.map +1 -0
  14. package/src/layout/scroll-region/scroll-region.d.ts +53 -0
  15. package/src/layout/scroll-region/scroll-region.js +28 -0
  16. package/src/layout/scroll-region/scroll-region.js.map +1 -0
  17. package/src/lib/custom-element-host.js +6 -2
  18. package/src/lib/custom-element-host.js.map +1 -1
  19. package/src/visual/chart/bar/bar-chart.d.ts +34 -0
  20. package/src/visual/chart/bar/bar-chart.js +71 -7
  21. package/src/visual/chart/bar/bar-chart.js.map +1 -1
  22. package/src/visual/chart/line/line-chart.d.ts +44 -0
  23. package/src/visual/chart/line/line-chart.js +104 -7
  24. package/src/visual/chart/line/line-chart.js.map +1 -1
  25. package/src/visual/display/3d-geo-globe/three-geo-globe.d.ts +18 -29
  26. package/src/visual/display/3d-geo-globe/three-geo-globe.js +19 -20
  27. package/src/visual/display/3d-geo-globe/three-geo-globe.js.map +1 -1
  28. package/src/visual/input/date-range/date-range-filter.d.ts +32 -2
  29. package/src/visual/input/date-range/date-range-filter.js +38 -6
  30. package/src/visual/input/date-range/date-range-filter.js.map +1 -1
  31. package/src/visual/input/number/number-input.d.ts +24 -2
  32. package/src/visual/input/number/number-input.js +31 -5
  33. package/src/visual/input/number/number-input.js.map +1 -1
  34. package/src/visual/input/select/select-input.d.ts +14 -2
  35. package/src/visual/input/select/select-input.js +25 -7
  36. package/src/visual/input/select/select-input.js.map +1 -1
  37. package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.d.ts +205 -0
  38. package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.js +576 -0
  39. package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.js.map +1 -0
  40. package/src/visual/media/equirect-sphere-viewport/index.d.ts +2 -0
  41. package/src/visual/media/equirect-sphere-viewport/index.js +2 -0
  42. package/src/visual/media/equirect-sphere-viewport/index.js.map +1 -0
  43. package/src/visual/media/equirect-sphere-viewport/planet-shader.d.ts +6 -0
  44. package/src/visual/media/equirect-sphere-viewport/planet-shader.js +69 -0
  45. package/src/visual/media/equirect-sphere-viewport/planet-shader.js.map +1 -0
  46. package/src/visual/media/flat-video-viewport/flat-video-viewport.d.ts +160 -0
  47. package/src/visual/media/flat-video-viewport/flat-video-viewport.js +370 -0
  48. package/src/visual/media/flat-video-viewport/flat-video-viewport.js.map +1 -0
  49. package/src/visual/media/flat-video-viewport/index.d.ts +2 -0
  50. package/src/visual/media/flat-video-viewport/index.js +2 -0
  51. package/src/visual/media/flat-video-viewport/index.js.map +1 -0
  52. package/src/visual/news/language-select/news-language-select.js +4 -4
  53. package/src/visual/news/language-select/news-language-select.js.map +1 -1
  54. package/src/visual/news/region-select/news-region-select.js +4 -4
  55. package/src/visual/news/region-select/news-region-select.js.map +1 -1
  56. package/src/visual/news/type-select/news-type-select.js +4 -4
  57. package/src/visual/news/type-select/news-type-select.js.map +1 -1
  58. package/src/visual/table/data-table.d.ts +25 -3
  59. package/src/visual/table/data-table.js +38 -10
  60. package/src/visual/table/data-table.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosettadash/vue",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "RosettaDash Vue 3 runtime — same import paths as @rosettadash/web-components. Storybook: github.com/KevinEverywhere/rosettadash (port 6008).",
5
5
  "author": "Kevin Ready <kevin@planetkevin.com>",
6
6
  "type": "module",
@@ -119,6 +119,11 @@
119
119
  "import": "./src/layout/modal/index.js",
120
120
  "default": "./src/layout/modal/index.js"
121
121
  },
122
+ "./layout/scroll-region": {
123
+ "types": "./src/layout/scroll-region/index.d.ts",
124
+ "import": "./src/layout/scroll-region/index.js",
125
+ "default": "./src/layout/scroll-region/index.js"
126
+ },
122
127
  "./layout/tabs": {
123
128
  "types": "./src/layout/tabs/index.d.ts",
124
129
  "import": "./src/layout/tabs/index.js",
@@ -341,6 +346,7 @@
341
346
  "./layout/flex/index": "./src/layout/flex/index.js",
342
347
  "./layout/grid/index": "./src/layout/grid/index.js",
343
348
  "./layout/modal/index": "./src/layout/modal/index.js",
349
+ "./layout/scroll-region/index": "./src/layout/scroll-region/index.js",
344
350
  "./layout/tabs/index": "./src/layout/tabs/index.js",
345
351
  "./logic/timer/index": "./src/logic/timer/index.js",
346
352
  "./visual/chart/bar/index": "./src/visual/chart/bar/index.js",
@@ -388,7 +394,7 @@
388
394
  "LICENSE"
389
395
  ],
390
396
  "dependencies": {
391
- "@rosettadash/web-components": "0.1.1",
397
+ "@rosettadash/web-components": "0.1.3",
392
398
  "tslib": "^2.3.0"
393
399
  },
394
400
  "peerDependencies": {
@@ -2,7 +2,10 @@ import { type PropType, type SlotsType, type VNode } from 'vue';
2
2
  export interface RoleGateProps {
3
3
  label?: string;
4
4
  allowedRoles?: string[];
5
+ /** Active session role — when omitted, content is always shown (builder/demo mode). */
6
+ currentRole?: string;
5
7
  statusText?: string;
8
+ hiddenStatusText?: string;
6
9
  className?: string;
7
10
  }
8
11
  /** @rosettadash/vue/domain/role-gate — domain.role-gate */
@@ -19,10 +22,18 @@ export declare const RoleGate: import("vue").DefineComponent<import("vue").Extra
19
22
  type: PropType<string[] | undefined>;
20
23
  default: undefined;
21
24
  };
25
+ currentRole: {
26
+ type: PropType<string | undefined>;
27
+ default: undefined;
28
+ };
22
29
  statusText: {
23
30
  type: PropType<string | undefined>;
24
31
  default: undefined;
25
32
  };
33
+ hiddenStatusText: {
34
+ type: PropType<string | undefined>;
35
+ default: undefined;
36
+ };
26
37
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
38
  [key: string]: any;
28
39
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -38,15 +49,25 @@ export declare const RoleGate: import("vue").DefineComponent<import("vue").Extra
38
49
  type: PropType<string[] | undefined>;
39
50
  default: undefined;
40
51
  };
52
+ currentRole: {
53
+ type: PropType<string | undefined>;
54
+ default: undefined;
55
+ };
41
56
  statusText: {
42
57
  type: PropType<string | undefined>;
43
58
  default: undefined;
44
59
  };
60
+ hiddenStatusText: {
61
+ type: PropType<string | undefined>;
62
+ default: undefined;
63
+ };
45
64
  }>> & Readonly<{}>, {
46
65
  className: string | undefined;
47
66
  label: string | undefined;
48
67
  allowedRoles: string[] | undefined;
68
+ currentRole: string | undefined;
49
69
  statusText: string | undefined;
70
+ hiddenStatusText: string | undefined;
50
71
  }, SlotsType<{
51
72
  default?: () => VNode[];
52
73
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,4 +1,11 @@
1
1
  import { defineComponent, h } from 'vue';
2
+ function roleGateAllowsRole(allowedRoles, roleId) {
3
+ const normalizedRole = roleId.trim();
4
+ if (!normalizedRole) {
5
+ return false;
6
+ }
7
+ return allowedRoles.some((allowed) => allowed === normalizedRole);
8
+ }
2
9
  /** @rosettadash/vue/domain/role-gate — domain.role-gate */
3
10
  export const RoleGate = defineComponent({
4
11
  name: 'RdRoleGate',
@@ -6,17 +13,38 @@ export const RoleGate = defineComponent({
6
13
  className: { type: String, default: undefined },
7
14
  label: { type: String, default: undefined },
8
15
  allowedRoles: { type: Array, default: undefined },
16
+ currentRole: { type: String, default: undefined },
9
17
  statusText: { type: String, default: undefined },
18
+ hiddenStatusText: { type: String, default: undefined },
10
19
  },
11
20
  slots: Object,
12
21
  setup(props, { slots, attrs }) {
13
22
  return () => {
14
- var _a, _b;
15
- const rootClass = ['rd-role-gate', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
23
+ var _a, _b, _c, _d, _e;
24
+ const allowedRoles = (_a = props.allowedRoles) !== null && _a !== void 0 ? _a : [];
25
+ const hasRoleContext = props.currentRole !== undefined && props.currentRole !== '';
26
+ const visible = !hasRoleContext ||
27
+ allowedRoles.length === 0 ||
28
+ roleGateAllowsRole(allowedRoles, (_b = props.currentRole) !== null && _b !== void 0 ? _b : '');
29
+ const rootClass = [
30
+ 'rd-role-gate',
31
+ visible ? 'rd-role-gate--visible' : 'rd-role-gate--hidden',
32
+ props.className,
33
+ typeof attrs.class === 'string' ? attrs.class : '',
34
+ ]
35
+ .filter(Boolean)
36
+ .join(' ');
16
37
  return h('section', { class: rootClass, 'data-testid': 'rd-role-gate' }, [
17
38
  props.label ? h('span', { class: 'rd-field__label' }, props.label) : null,
18
- h('p', { class: 'rd-role-gate__status' }, (_a = props.statusText) !== null && _a !== void 0 ? _a : 'Visible'),
19
- (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots),
39
+ visible
40
+ ? [
41
+ h('p', { class: 'rd-role-gate__status', 'data-testid': 'rd-role-gate-visible' }, (_c = props.statusText) !== null && _c !== void 0 ? _c : 'Visible'),
42
+ (_d = slots.default) === null || _d === void 0 ? void 0 : _d.call(slots),
43
+ ]
44
+ : h('p', {
45
+ class: 'rd-role-gate__status rd-role-gate__status--hidden',
46
+ 'data-testid': 'rd-role-gate-hidden',
47
+ }, (_e = props.hiddenStatusText) !== null && _e !== void 0 ? _e : 'Hidden for current role'),
20
48
  ]);
21
49
  };
22
50
  },
@@ -1 +1 @@
1
- {"version":3,"file":"role-gate.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/role-gate/role-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AASpF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,YAAY,EAAE,EAAE,IAAI,EAAE,KAAuC,EAAE,OAAO,EAAE,SAAS,EAAE;QACnF,UAAU,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACjF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClI,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;gBACzE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,CAAC;gBACxE,MAAA,KAAK,CAAC,OAAO,qDAAI;aAClB,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"role-gate.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/role-gate/role-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAYpF,SAAS,kBAAkB,CAAC,YAAsB,EAAE,MAAc;IAChE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC;AACpE,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,YAAY,EAAE,EAAE,IAAI,EAAE,KAAuC,EAAE,OAAO,EAAE,SAAS,EAAE;QACnF,WAAW,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QACjF,UAAU,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAChF,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACvF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;;YACV,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC;YACnF,MAAM,OAAO,GACX,CAAC,cAAc;gBACf,YAAY,CAAC,MAAM,KAAK,CAAC;gBACzB,kBAAkB,CAAC,YAAY,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG;gBAChB,cAAc;gBACd,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB;gBAC1D,KAAK,CAAC,SAAS;gBACf,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;aACnD;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;gBACvE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,OAAO;oBACL,CAAC,CAAC;wBACE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,CAAC;wBAC/G,MAAA,KAAK,CAAC,OAAO,qDAAI;qBAClB;oBACH,CAAC,CAAC,CAAC,CACC,GAAG,EACH;wBACE,KAAK,EAAE,mDAAmD;wBAC1D,aAAa,EAAE,qBAAqB;qBACrC,EACD,MAAA,KAAK,CAAC,gBAAgB,mCAAI,yBAAyB,CACpD;aACN,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -30,7 +30,7 @@ export declare const TimePreset: import("vue").DefineComponent<import("vue").Ext
30
30
  };
31
31
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
32
  [key: string]: any;
33
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "presetChange"[], "presetChange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
34
  className: {
35
35
  type: PropType<string | undefined>;
36
36
  default: undefined;
@@ -47,7 +47,9 @@ export declare const TimePreset: import("vue").DefineComponent<import("vue").Ext
47
47
  type: PropType<string | undefined>;
48
48
  default: undefined;
49
49
  };
50
- }>> & Readonly<{}>, {
50
+ }>> & Readonly<{
51
+ onPresetChange?: ((...args: any[]) => any) | undefined;
52
+ }>, {
51
53
  className: string | undefined;
52
54
  label: string | undefined;
53
55
  presets: TimePresetPreset[] | undefined;
@@ -9,7 +9,8 @@ export const TimePreset = defineComponent({
9
9
  activePresetId: { type: String, default: undefined },
10
10
  },
11
11
  slots: Object,
12
- setup(props, { slots, attrs }) {
12
+ emits: ['presetChange'],
13
+ setup(props, { slots, attrs, emit }) {
13
14
  function presetButtonClass(id) {
14
15
  return ['rd-time-preset__button', props.activePresetId === id ? 'rd-time-preset__button--active' : ''].filter(Boolean).join(' ');
15
16
  }
@@ -18,7 +19,16 @@ export const TimePreset = defineComponent({
18
19
  const rootClass = ['rd-time-preset', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
19
20
  return h('section', { class: rootClass, 'data-testid': 'rd-time-preset' }, [
20
21
  props.label ? h('span', { class: 'rd-field__label' }, props.label) : null,
21
- h('div', { class: 'rd-time-preset__buttons', role: 'group' }, ((_a = props.presets) !== null && _a !== void 0 ? _a : []).map((p) => h('button', { type: 'button', key: p.id, class: presetButtonClass(p.id) }, p.label))),
22
+ h('div', { class: 'rd-time-preset__buttons', role: 'group' }, ((_a = props.presets) !== null && _a !== void 0 ? _a : []).map((p) => h('button', {
23
+ type: 'button',
24
+ key: p.id,
25
+ class: presetButtonClass(p.id),
26
+ onClick: () => {
27
+ var _a;
28
+ emit('presetChange', p.id);
29
+ (_a = props.onPresetChange) === null || _a === void 0 ? void 0 : _a.call(props, p.id);
30
+ },
31
+ }, p.label))),
22
32
  (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots),
23
33
  ]);
24
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"time-preset.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/time-preset/time-preset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAepF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,KAAiD,EAAE,OAAO,EAAE,SAAS,EAAE;QACxF,cAAc,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACrF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,SAAS,iBAAiB,CAAC,EAAU;YACnC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnI,CAAC;QACD,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpI,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE;gBAC3E,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CACpF,CAAC;gBACF,MAAA,KAAK,CAAC,OAAO,qDAAI;aAClB,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"time-preset.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/time-preset/time-preset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAepF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,KAAiD,EAAE,OAAO,EAAE,SAAS,EAAE;QACxF,cAAc,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACrF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,EAAE,CAAC,cAAc,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QACjC,SAAS,iBAAiB,CAAC,EAAU;YACnC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnI,CAAC;QACD,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpI,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE;gBAC3E,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,QAAQ,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,CAAC,CAAC,EAAE;oBACT,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9B,OAAO,EAAE,GAAG,EAAE;;wBACZ,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC3B,MAAA,KAAK,CAAC,cAAc,sDAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC;iBACF,EAAE,CAAC,CAAC,KAAK,CAAC,CACZ,CAAC;gBACF,MAAA,KAAK,CAAC,OAAO,qDAAI;aAClB,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
package/src/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export * from './layout/collapsible/index.js';
19
19
  export * from './layout/flex/index.js';
20
20
  export * from './layout/grid/index.js';
21
21
  export * from './layout/modal/index.js';
22
+ export * from './layout/scroll-region/index.js';
22
23
  export * from './layout/tabs/index.js';
23
24
  export * from './logic/timer/index.js';
24
25
  export * from './visual/chart/bar/index.js';
package/src/index.js CHANGED
@@ -19,6 +19,7 @@ export * from './layout/collapsible/index.js';
19
19
  export * from './layout/flex/index.js';
20
20
  export * from './layout/grid/index.js';
21
21
  export * from './layout/modal/index.js';
22
+ export * from './layout/scroll-region/index.js';
22
23
  export * from './layout/tabs/index.js';
23
24
  export * from './logic/timer/index.js';
24
25
  export * from './visual/chart/bar/index.js';
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vue/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vue/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { ScrollRegionProps, ScrollRegionComponent } from './scroll-region';
2
+ export { ScrollRegion } from './scroll-region';
@@ -0,0 +1,2 @@
1
+ export { ScrollRegion } from './scroll-region';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/layout/scroll-region/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { type PropType, type SlotsType, type VNode } from 'vue';
2
+ export interface ScrollRegionProps {
3
+ title?: string;
4
+ maxHeight?: string;
5
+ overlayScrollbar?: boolean;
6
+ className?: string;
7
+ }
8
+ /** @rosettadash/vue/layout/scroll-region — layout.scroll-region */
9
+ export declare const ScrollRegion: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
10
+ className: {
11
+ type: PropType<string | undefined>;
12
+ default: undefined;
13
+ };
14
+ title: {
15
+ type: PropType<string | undefined>;
16
+ default: undefined;
17
+ };
18
+ maxHeight: {
19
+ type: PropType<string | undefined>;
20
+ default: undefined;
21
+ };
22
+ overlayScrollbar: {
23
+ type: PropType<boolean | undefined>;
24
+ default: undefined;
25
+ };
26
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
+ className: {
30
+ type: PropType<string | undefined>;
31
+ default: undefined;
32
+ };
33
+ title: {
34
+ type: PropType<string | undefined>;
35
+ default: undefined;
36
+ };
37
+ maxHeight: {
38
+ type: PropType<string | undefined>;
39
+ default: undefined;
40
+ };
41
+ overlayScrollbar: {
42
+ type: PropType<boolean | undefined>;
43
+ default: undefined;
44
+ };
45
+ }>> & Readonly<{}>, {
46
+ className: string | undefined;
47
+ title: string | undefined;
48
+ maxHeight: string | undefined;
49
+ overlayScrollbar: boolean | undefined;
50
+ }, SlotsType<{
51
+ default?: () => VNode[];
52
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
53
+ export type ScrollRegionComponent = typeof ScrollRegion;
@@ -0,0 +1,28 @@
1
+ import { defineComponent, h } from 'vue';
2
+ /** @rosettadash/vue/layout/scroll-region — layout.scroll-region */
3
+ export const ScrollRegion = defineComponent({
4
+ name: 'RdScrollRegion',
5
+ props: {
6
+ className: { type: String, default: undefined },
7
+ title: { type: String, default: undefined },
8
+ maxHeight: { type: String, default: undefined },
9
+ overlayScrollbar: { type: Boolean, default: undefined },
10
+ },
11
+ slots: Object,
12
+ setup(props, { slots, attrs }) {
13
+ return () => {
14
+ var _a, _b;
15
+ const rootClass = ['rd-scroll-region', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
16
+ return h('section', {
17
+ class: [rootClass, props.overlayScrollbar === false ? '' : 'rd-scroll-region--overlay-scrollbar'].filter(Boolean).join(' '),
18
+ 'data-testid': 'rd-scroll-region',
19
+ 'aria-label': (_a = props.title) !== null && _a !== void 0 ? _a : 'Scrollable content',
20
+ style: props.maxHeight ? { maxHeight: props.maxHeight } : undefined,
21
+ }, [
22
+ props.title ? h('header', { class: 'rd-scroll-region__header' }, props.title) : null,
23
+ h('div', { class: 'rd-scroll-region__body' }, (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)),
24
+ ]);
25
+ };
26
+ },
27
+ });
28
+ //# sourceMappingURL=scroll-region.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-region.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/layout/scroll-region/scroll-region.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AASpF,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAwC,EAAE,OAAO,EAAE,SAAS,EAAE;KACzF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtI,OAAO,CAAC,CAAC,SAAS,EAAE;gBACpB,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3H,aAAa,EAAE,kBAAkB;gBACjC,YAAY,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,oBAAoB;gBACjD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;aACpE,EAAE;gBACD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpF,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAC;aACjE,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -45,7 +45,7 @@ export function defineCustomElementHost(options, propDefs) {
45
45
  type: String,
46
46
  default: undefined,
47
47
  } }, propDefs),
48
- emits: Object.values(eventMap),
48
+ emits: [...new Set([...Object.keys(eventMap), ...Object.values(eventMap)])],
49
49
  setup(props, { emit, attrs }) {
50
50
  options.register();
51
51
  const host = ref(null);
@@ -64,7 +64,11 @@ export function defineCustomElementHost(options, propDefs) {
64
64
  applyAttrs();
65
65
  for (const [domEvent, vueEvent] of Object.entries(eventMap)) {
66
66
  const handler = (event) => {
67
- emit(vueEvent, event.detail);
67
+ const detail = event.detail;
68
+ emit(vueEvent, detail);
69
+ if (domEvent !== vueEvent) {
70
+ emit(domEvent, detail);
71
+ }
68
72
  };
69
73
  el.addEventListener(domEvent, handler);
70
74
  listeners.push([domEvent, handler]);
@@ -1 +1 @@
1
- {"version":3,"file":"custom-element-host.js","sourceRoot":"","sources":["../../../../../packages/vue/src/lib/custom-element-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-element-host.js","sourceRoot":"","sources":["../../../../../packages/vue/src/lib/custom-element-host.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  import { type PropType, type SlotsType, type VNode } from 'vue';
2
+ export interface BarChartBar {
3
+ label: string;
4
+ value: number;
5
+ }
2
6
  export interface BarChartProps {
3
7
  title?: string;
8
+ bars?: BarChartBar[];
9
+ yAxisLabel?: string;
10
+ valueFormat?: (value: number) => string;
4
11
  className?: string;
5
12
  }
6
13
  /** @rosettadash/vue/visual/chart/bar — visual.chart.bar */
@@ -13,6 +20,18 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
13
20
  type: PropType<string | undefined>;
14
21
  default: undefined;
15
22
  };
23
+ bars: {
24
+ type: PropType<BarChartBar[] | undefined>;
25
+ default: undefined;
26
+ };
27
+ yAxisLabel: {
28
+ type: PropType<string | undefined>;
29
+ default: undefined;
30
+ };
31
+ valueFormat: {
32
+ type: PropType<((value: number) => string) | undefined>;
33
+ default: undefined;
34
+ };
16
35
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
36
  [key: string]: any;
18
37
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -24,9 +43,24 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
24
43
  type: PropType<string | undefined>;
25
44
  default: undefined;
26
45
  };
46
+ bars: {
47
+ type: PropType<BarChartBar[] | undefined>;
48
+ default: undefined;
49
+ };
50
+ yAxisLabel: {
51
+ type: PropType<string | undefined>;
52
+ default: undefined;
53
+ };
54
+ valueFormat: {
55
+ type: PropType<((value: number) => string) | undefined>;
56
+ default: undefined;
57
+ };
27
58
  }>> & Readonly<{}>, {
28
59
  className: string | undefined;
29
60
  title: string | undefined;
61
+ bars: BarChartBar[] | undefined;
62
+ yAxisLabel: string | undefined;
63
+ valueFormat: ((value: number) => string) | undefined;
30
64
  }, SlotsType<{
31
65
  default?: () => VNode[];
32
66
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,21 +1,85 @@
1
1
  import { defineComponent, h } from 'vue';
2
+ const FALLBACK_BARS = [
3
+ { label: 'A', value: 40 },
4
+ { label: 'B', value: 65 },
5
+ { label: 'C', value: 55 },
6
+ { label: 'D', value: 80 },
7
+ { label: 'E', value: 48 },
8
+ ];
9
+ function defaultFormat(value) {
10
+ if (value >= 1000000) {
11
+ return `${(value / 1000000).toFixed(1)}M`;
12
+ }
13
+ if (value >= 1000) {
14
+ return `${(value / 1000).toFixed(0)}K`;
15
+ }
16
+ return String(Math.round(value));
17
+ }
18
+ function buildTicks(max, count = 4) {
19
+ if (max <= 0) {
20
+ return [0];
21
+ }
22
+ const step = max / (count - 1);
23
+ return Array.from({ length: count }, (_, index) => step * index);
24
+ }
2
25
  /** @rosettadash/vue/visual/chart/bar — visual.chart.bar */
3
26
  export const BarChart = defineComponent({
4
27
  name: 'RdBarChart',
5
28
  props: {
6
29
  className: { type: String, default: undefined },
7
30
  title: { type: String, default: undefined },
31
+ bars: { type: Array, default: undefined },
32
+ yAxisLabel: { type: String, default: undefined },
33
+ valueFormat: { type: Function, default: undefined },
8
34
  },
9
35
  slots: Object,
10
36
  setup(props, { slots, attrs }) {
11
- const barHeights = [40, 65, 55, 80, 48];
12
37
  return () => {
13
- var _a, _b;
14
- const rootClass = ['rd-chart-bar', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
15
- return h('section', { class: rootClass, 'data-testid': 'rd-chart-bar' }, [
16
- h('header', { class: 'rd-chart-bar__header' }, h('span', null, (_a = props.title) !== null && _a !== void 0 ? _a : 'Bar chart')),
17
- h('div', { class: 'rd-chart-bar__bars', 'aria-hidden': 'true' }, barHeights.map((height, i) => h('div', { key: i, class: 'rd-chart-bar__bar-wrap' }, h('div', { class: 'rd-chart-bar__bar', style: { height: `${height}%` } })))),
18
- (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots),
38
+ var _a, _b, _c, _d, _e;
39
+ const rootClass = ['rd-chart-bar', props.className, typeof attrs.class === 'string' ? attrs.class : '']
40
+ .filter(Boolean)
41
+ .join(' ');
42
+ const bars = ((_a = props.bars) === null || _a === void 0 ? void 0 : _a.length) ? props.bars : FALLBACK_BARS;
43
+ const format = (_b = props.valueFormat) !== null && _b !== void 0 ? _b : defaultFormat;
44
+ const maxValue = Math.max(...bars.map((bar) => bar.value), 1);
45
+ const ticks = buildTicks(maxValue);
46
+ return h('section', {
47
+ class: rootClass,
48
+ 'data-testid': 'rd-chart-bar',
49
+ role: 'img',
50
+ 'aria-label': (_c = props.title) !== null && _c !== void 0 ? _c : 'Bar chart',
51
+ }, [
52
+ h('header', { class: 'rd-chart-bar__header' }, h('span', null, (_d = props.title) !== null && _d !== void 0 ? _d : 'Bar chart')),
53
+ h('div', { class: 'rd-chart-bar__body' }, [
54
+ h('div', { class: 'rd-chart-bar__y-axis', 'aria-hidden': 'true' }, [
55
+ h('div', { class: 'rd-chart-bar__y-ticks' }, [...ticks]
56
+ .reverse()
57
+ .map((tick) => h('span', { key: tick, class: 'rd-chart-bar__y-tick' }, format(tick)))),
58
+ props.yAxisLabel ? h('span', { class: 'rd-chart-bar__y-label' }, props.yAxisLabel) : null,
59
+ ]),
60
+ h('div', { class: 'rd-chart-bar__plot' }, [
61
+ h('div', { class: 'rd-chart-bar__grid-lines', 'aria-hidden': 'true' }, ticks.map((tick) => h('span', {
62
+ key: tick,
63
+ class: 'rd-chart-bar__grid-line',
64
+ style: { bottom: `${(tick / maxValue) * 100}%` },
65
+ }))),
66
+ h('div', { class: 'rd-chart-bar__bars' }, bars.map((bar) => {
67
+ const heightPct = (bar.value / maxValue) * 100;
68
+ return h('div', { key: bar.label, class: 'rd-chart-bar__bar-group' }, [
69
+ h('div', { class: 'rd-chart-bar__bar-wrap' }, [
70
+ h('div', {
71
+ class: 'rd-chart-bar__bar',
72
+ style: { height: `${heightPct}%` },
73
+ title: `${bar.label}: ${format(bar.value)}`,
74
+ }),
75
+ ]),
76
+ h('span', { class: 'rd-chart-bar__x-label' }, bar.label),
77
+ h('span', { class: 'rd-chart-bar__value' }, format(bar.value)),
78
+ ]);
79
+ })),
80
+ ]),
81
+ ]),
82
+ (_e = slots.default) === null || _e === void 0 ? void 0 : _e.call(slots),
19
83
  ]);
20
84
  };
21
85
  },
@@ -1 +1 @@
1
- {"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../../../../../../packages/vue/src/visual/chart/bar/bar-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAOpF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5E;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClI,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;gBACzE,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,WAAW,CAAC,CAAC;gBAC3F,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CACjI,CAAC;gBACF,MAAA,KAAK,CAAC,OAAO,qDAAI;aAClB,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../../../../../../packages/vue/src/visual/chart/bar/bar-chart.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
1
  import { type PropType, type SlotsType, type VNode } from 'vue';
2
+ export interface LineChartPoint {
3
+ x: string | number;
4
+ y: number;
5
+ }
2
6
  export interface LineChartProps {
3
7
  title?: string;
8
+ points?: LineChartPoint[];
9
+ xAxisLabel?: string;
10
+ yAxisLabel?: string;
11
+ valueFormat?: (value: number) => string;
4
12
  className?: string;
5
13
  }
6
14
  /** @rosettadash/vue/visual/chart/line — visual.chart.line */
@@ -13,6 +21,22 @@ export declare const LineChart: import("vue").DefineComponent<import("vue").Extr
13
21
  type: PropType<string | undefined>;
14
22
  default: undefined;
15
23
  };
24
+ points: {
25
+ type: PropType<LineChartPoint[] | undefined>;
26
+ default: undefined;
27
+ };
28
+ xAxisLabel: {
29
+ type: PropType<string | undefined>;
30
+ default: undefined;
31
+ };
32
+ yAxisLabel: {
33
+ type: PropType<string | undefined>;
34
+ default: undefined;
35
+ };
36
+ valueFormat: {
37
+ type: PropType<((value: number) => string) | undefined>;
38
+ default: undefined;
39
+ };
16
40
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
41
  [key: string]: any;
18
42
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -24,9 +48,29 @@ export declare const LineChart: import("vue").DefineComponent<import("vue").Extr
24
48
  type: PropType<string | undefined>;
25
49
  default: undefined;
26
50
  };
51
+ points: {
52
+ type: PropType<LineChartPoint[] | undefined>;
53
+ default: undefined;
54
+ };
55
+ xAxisLabel: {
56
+ type: PropType<string | undefined>;
57
+ default: undefined;
58
+ };
59
+ yAxisLabel: {
60
+ type: PropType<string | undefined>;
61
+ default: undefined;
62
+ };
63
+ valueFormat: {
64
+ type: PropType<((value: number) => string) | undefined>;
65
+ default: undefined;
66
+ };
27
67
  }>> & Readonly<{}>, {
28
68
  className: string | undefined;
29
69
  title: string | undefined;
70
+ yAxisLabel: string | undefined;
71
+ valueFormat: ((value: number) => string) | undefined;
72
+ points: LineChartPoint[] | undefined;
73
+ xAxisLabel: string | undefined;
30
74
  }, SlotsType<{
31
75
  default?: () => VNode[];
32
76
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;