@devix-tecnologia/timeline-vue 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +18 -0
  2. package/dist/style.css +1 -0
  3. package/dist/timeline-vue.es.js +557 -0
  4. package/dist/types/components/timeline/atomos/AvatarTimeline.vue.d.ts +17 -0
  5. package/dist/types/components/timeline/atomos/BoxData.vue.d.ts +23 -0
  6. package/dist/types/components/timeline/atomos/Destaque.vue.d.ts +11 -0
  7. package/dist/types/components/timeline/atomos/Hora.vue.d.ts +24 -0
  8. package/dist/types/components/timeline/atomos/IconeCategoria.vue.d.ts +57 -0
  9. package/dist/types/components/timeline/atomos/IconeStatus.vue.d.ts +17 -0
  10. package/dist/types/components/timeline/atomos/SubtituloEvento.vue.d.ts +13 -0
  11. package/dist/types/components/timeline/atomos/TituloEvento.vue.d.ts +13 -0
  12. package/dist/types/components/timeline/index.d.ts +3 -0
  13. package/dist/types/components/timeline/moleculas/DescricaoEvento.vue.d.ts +21 -0
  14. package/dist/types/components/timeline/moleculas/EventoTimeline.vue.d.ts +18 -0
  15. package/dist/types/components/timeline/moleculas/HoraEvento.vue.d.ts +19 -0
  16. package/dist/types/components/timeline/moleculas/PerfilTimeline.vue.d.ts +39 -0
  17. package/dist/types/components/timeline/moleculas/SeparadorPeriodo.vue.d.ts +24 -0
  18. package/dist/types/components/timeline/moleculas/Topo.vue.d.ts +3 -0
  19. package/dist/types/components/timeline/organismos/Timeline.mock.d.ts +3 -0
  20. package/dist/types/components/timeline/organismos/Timeline.vue.d.ts +40 -0
  21. package/dist/types/components/timeline/type.d.ts +23 -0
  22. package/dist/types/index.d.ts +5 -0
  23. package/dist/vite.svg +1 -0
  24. package/package.json +53 -0
  25. package/src/assets/vue.svg +1 -0
  26. package/src/components/timeline/atomos/AvatarTimeline.stories.ts +32 -0
  27. package/src/components/timeline/atomos/AvatarTimeline.vue +51 -0
  28. package/src/components/timeline/atomos/BoxData.stories.ts +41 -0
  29. package/src/components/timeline/atomos/BoxData.vue +57 -0
  30. package/src/components/timeline/atomos/Destaque.stories.ts +24 -0
  31. package/src/components/timeline/atomos/Destaque.vue +39 -0
  32. package/src/components/timeline/atomos/Hora.stories.ts +36 -0
  33. package/src/components/timeline/atomos/Hora.vue +53 -0
  34. package/src/components/timeline/atomos/IconeCategoria.stories.ts +60 -0
  35. package/src/components/timeline/atomos/IconeCategoria.vue +110 -0
  36. package/src/components/timeline/atomos/IconeStatus.stories.ts +38 -0
  37. package/src/components/timeline/atomos/IconeStatus.vue +72 -0
  38. package/src/components/timeline/atomos/SubtituloEvento.stories.ts +24 -0
  39. package/src/components/timeline/atomos/SubtituloEvento.vue +33 -0
  40. package/src/components/timeline/atomos/TituloEvento.stories.ts +24 -0
  41. package/src/components/timeline/atomos/TituloEvento.vue +32 -0
  42. package/src/components/timeline/index.ts +7 -0
  43. package/src/components/timeline/moleculas/DescricaoEvento.stories.ts +31 -0
  44. package/src/components/timeline/moleculas/DescricaoEvento.vue +59 -0
  45. package/src/components/timeline/moleculas/EventoTimeline.stories.ts +94 -0
  46. package/src/components/timeline/moleculas/EventoTimeline.vue +102 -0
  47. package/src/components/timeline/moleculas/HoraEvento.stories.ts +37 -0
  48. package/src/components/timeline/moleculas/HoraEvento.vue +73 -0
  49. package/src/components/timeline/moleculas/PerfilTimeline.stories.ts +40 -0
  50. package/src/components/timeline/moleculas/PerfilTimeline.vue +103 -0
  51. package/src/components/timeline/moleculas/SeparadorPeriodo.stories.ts +42 -0
  52. package/src/components/timeline/moleculas/SeparadorPeriodo.vue +101 -0
  53. package/src/components/timeline/moleculas/Topo.vue +38 -0
  54. package/src/components/timeline/organismos/Timeline.mock.ts +281 -0
  55. package/src/components/timeline/organismos/Timeline.stories.ts +31 -0
  56. package/src/components/timeline/organismos/Timeline.vue +188 -0
  57. package/src/components/timeline/type.ts +30 -0
  58. package/src/global.css +98 -0
  59. package/src/index.ts +16 -0
  60. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,57 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ iconeCategoria: {
4
+ type: StringConstructor;
5
+ required: true;
6
+ };
7
+ categoria: {
8
+ type: StringConstructor;
9
+ };
10
+ escuro: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ };
14
+ tipo: {
15
+ type: StringConstructor;
16
+ };
17
+ borderColor: {
18
+ type: StringConstructor;
19
+ };
20
+ backgroundColor: {
21
+ type: StringConstructor;
22
+ };
23
+ }, {
24
+ classes: import("vue").ComputedRef<{
25
+ [x: string]: boolean;
26
+ 'bg-escuro': boolean;
27
+ 'bg-claro': boolean;
28
+ }>;
29
+ style: import("vue").ComputedRef<{
30
+ borderColor: string | undefined;
31
+ backgroundColor: string | undefined;
32
+ }>;
33
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
34
+ iconeCategoria: {
35
+ type: StringConstructor;
36
+ required: true;
37
+ };
38
+ categoria: {
39
+ type: StringConstructor;
40
+ };
41
+ escuro: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
45
+ tipo: {
46
+ type: StringConstructor;
47
+ };
48
+ borderColor: {
49
+ type: StringConstructor;
50
+ };
51
+ backgroundColor: {
52
+ type: StringConstructor;
53
+ };
54
+ }>>, {
55
+ escuro: boolean;
56
+ }>;
57
+ export default _default;
@@ -0,0 +1,17 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ status: {
4
+ required: true;
5
+ type: StringConstructor;
6
+ };
7
+ }, {
8
+ classes: import("vue").ComputedRef<{
9
+ [x: string]: boolean;
10
+ }>;
11
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
12
+ status: {
13
+ required: true;
14
+ type: StringConstructor;
15
+ };
16
+ }>>, {}>;
17
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ subtitulo: {
4
+ required: true;
5
+ type: StringConstructor;
6
+ };
7
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
8
+ subtitulo: {
9
+ required: true;
10
+ type: StringConstructor;
11
+ };
12
+ }>>, {}>;
13
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ titulo: {
4
+ required: true;
5
+ type: StringConstructor;
6
+ };
7
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
8
+ titulo: {
9
+ required: true;
10
+ type: StringConstructor;
11
+ };
12
+ }>>, {}>;
13
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import Timeline from "./organismos/Timeline.vue";
2
+ import * as Tipos from "./type";
3
+ export { Timeline, Tipos };
@@ -0,0 +1,21 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ titulo: {
4
+ required: true;
5
+ type: StringConstructor;
6
+ };
7
+ subtitulo: {
8
+ required: true;
9
+ type: StringConstructor;
10
+ };
11
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
12
+ titulo: {
13
+ required: true;
14
+ type: StringConstructor;
15
+ };
16
+ subtitulo: {
17
+ required: true;
18
+ type: StringConstructor;
19
+ };
20
+ }>>, {}>;
21
+ export default _default;
@@ -0,0 +1,18 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ dadosEvento: {
4
+ required: true;
5
+ type: ObjectConstructor;
6
+ };
7
+ }, {
8
+ eventoSelecionado: import("vue").ComputedRef<{
9
+ atual: boolean;
10
+ padrao: boolean;
11
+ }>;
12
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
+ dadosEvento: {
14
+ required: true;
15
+ type: ObjectConstructor;
16
+ };
17
+ }>>, {}>;
18
+ export default _default;
@@ -0,0 +1,19 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ horaPrevista: {
4
+ type: DateConstructor;
5
+ required: true;
6
+ };
7
+ horaRealizada: {
8
+ type: DateConstructor;
9
+ };
10
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
11
+ horaPrevista: {
12
+ type: DateConstructor;
13
+ required: true;
14
+ };
15
+ horaRealizada: {
16
+ type: DateConstructor;
17
+ };
18
+ }>>, {}>;
19
+ export default _default;
@@ -0,0 +1,39 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ imagemPerfil: {
4
+ type: StringConstructor;
5
+ };
6
+ nomePerfil: {
7
+ type: StringConstructor;
8
+ };
9
+ iconePerfil: {
10
+ type: StringConstructor;
11
+ };
12
+ backgroundColor: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ }, {
17
+ style: import("vue").ComputedRef<{
18
+ backgroundColor: string;
19
+ }>;
20
+ elementoFixo: import("vue").Ref<HTMLElement | null>;
21
+ isFixed: import("vue").Ref<boolean>;
22
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
23
+ imagemPerfil: {
24
+ type: StringConstructor;
25
+ };
26
+ nomePerfil: {
27
+ type: StringConstructor;
28
+ };
29
+ iconePerfil: {
30
+ type: StringConstructor;
31
+ };
32
+ backgroundColor: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ }>>, {
37
+ backgroundColor: string;
38
+ }>;
39
+ export default _default;
@@ -0,0 +1,24 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{
3
+ dataSeparador: {
4
+ required: true;
5
+ type: StringConstructor;
6
+ };
7
+ aparencia: {
8
+ type: StringConstructor;
9
+ };
10
+ }, {
11
+ dataRecebida: string;
12
+ ano: number;
13
+ mes: string;
14
+ dia: number;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ dataSeparador: {
17
+ required: true;
18
+ type: StringConstructor;
19
+ };
20
+ aparencia: {
21
+ type: StringConstructor;
22
+ };
23
+ }>>, {}>;
24
+ export default _default;
@@ -0,0 +1,3 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { Evento, Perfil } from "../type";
2
+ export declare const dadosPerfil: Perfil;
3
+ export declare const dadosEventos: Evento[];
@@ -0,0 +1,40 @@
1
+ /** __vue_virtual_code_placeholder */
2
+ import { Evento } from "../type";
3
+ type TipoEventoTimeline = {
4
+ tipo: "dia";
5
+ valor: Date;
6
+ key: number;
7
+ } | {
8
+ tipo: "evento";
9
+ valor: Evento;
10
+ key: number;
11
+ atual: boolean;
12
+ } | {
13
+ tipo: "eventos";
14
+ valor: Evento[];
15
+ key: number;
16
+ };
17
+ declare const _default: import("vue").DefineComponent<{
18
+ perfilTimeline: {
19
+ required: true;
20
+ type: ObjectConstructor;
21
+ };
22
+ eventosTimeline: {
23
+ required: true;
24
+ type: ObjectConstructor;
25
+ };
26
+ }, {
27
+ eventosPorTipo: import("vue").ComputedRef<TipoEventoTimeline[]>;
28
+ }, unknown, {}, {
29
+ scrollParaItemAtual(): void;
30
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
31
+ perfilTimeline: {
32
+ required: true;
33
+ type: ObjectConstructor;
34
+ };
35
+ eventosTimeline: {
36
+ required: true;
37
+ type: ObjectConstructor;
38
+ };
39
+ }>>, {}>;
40
+ export default _default;
@@ -0,0 +1,23 @@
1
+ export type Perfil = {
2
+ nome: string;
3
+ imagem: string | null;
4
+ icone: string | null;
5
+ };
6
+ export type Evento = {
7
+ id: string;
8
+ data: Date;
9
+ previsto: Date;
10
+ duracao: number | null;
11
+ realizado: Date | null;
12
+ tolerancia: number | null;
13
+ titulo: string;
14
+ subtitulo: string;
15
+ destaque: string;
16
+ categoria: {
17
+ nome: string;
18
+ icone: string;
19
+ };
20
+ status: "atrasado" | "adiantado" | "adiado" | "realizado" | "planejado" | "cancelado";
21
+ criticidade: string;
22
+ acao: boolean;
23
+ };
@@ -0,0 +1,5 @@
1
+ import { Plugin } from "vue";
2
+ import "./global.css";
3
+ declare const Timeline: Plugin;
4
+ export default Timeline;
5
+ export * from "./components/timeline";
package/dist/vite.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@devix-tecnologia/timeline-vue",
3
+ "private": false,
4
+ "version": "1.0.1",
5
+ "scripts": {
6
+ "dev": "vite",
7
+ "build": "vue-tsc && vite build",
8
+ "preview": "vite preview",
9
+ "storybook": "storybook dev -p 6006",
10
+ "build-storybook": "storybook build",
11
+ "semantic-release": "semantic-release"
12
+ },
13
+ "dependencies": {
14
+ "@fontsource/material-icons": "^4.5.4",
15
+ "vue": "^3.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "@semantic-release/git": "^10.0.1",
19
+ "@semantic-release/github": "^8.0.7",
20
+ "@semantic-release/npm": "^9.0.1",
21
+ "@storybook/addon-essentials": "^7.0.7",
22
+ "@storybook/addon-interactions": "^7.0.7",
23
+ "@storybook/addon-links": "^7.0.7",
24
+ "@storybook/addon-styling": "^1.0.1",
25
+ "@storybook/blocks": "^7.0.7",
26
+ "@storybook/testing-library": "^0.0.14-next.2",
27
+ "@storybook/vue3": "^7.0.7",
28
+ "@storybook/vue3-vite": "^7.0.7",
29
+ "@vitejs/plugin-vue": "^4.1.0",
30
+ "react": "^18.2.0",
31
+ "react-dom": "^18.2.0",
32
+ "semantic-release": "^19.0.5",
33
+ "storybook": "^7.0.7",
34
+ "typescript": "^5.0.2",
35
+ "vite": "^4.3.0",
36
+ "vue-tsc": "^1.2.0"
37
+ },
38
+ "files": [
39
+ "src",
40
+ "dist"
41
+ ],
42
+ "types": "./dist/types/index.d.ts",
43
+ "module": "./dist/timeline-vue.es.js",
44
+ "exports": {
45
+ ".": {
46
+ "import": "./dist/timeline-vue.es.js"
47
+ },
48
+ "./dist/style.css": "./dist/style.css"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ }
53
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
@@ -0,0 +1,32 @@
1
+ import AvatarTimeline from './AvatarTimeline.vue';
2
+ import { Meta, StoryFn } from '@storybook/vue3';
3
+
4
+ export default {
5
+ title: 'Devix/Timeline/Atomos/AvatarTimeline',
6
+ component: AvatarTimeline,
7
+ parameters: {
8
+ componentSubtitle: 'Imagem ou ícones do Materials Symbols do Google',
9
+ },
10
+ argTypes: {},
11
+ } as Meta<typeof AvatarTimeline>;
12
+
13
+ const Template: StoryFn<typeof AvatarTimeline> = (args) => ({
14
+ components: { AvatarTimeline },
15
+ setup() {
16
+ return { args };
17
+ },
18
+ template: '<AvatarTimeline v-bind="args" />',
19
+ });
20
+
21
+ const avatar =
22
+ 'https://images.unsplash.com/photo-1526080652727-5b77f74eacd2?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1752&q=80';
23
+
24
+ export const Imagem = Template.bind({});
25
+ Imagem.args = {
26
+ imagem: avatar,
27
+ };
28
+
29
+ export const Icone = Template.bind({});
30
+ Icone.args = {
31
+ icone: 'person',
32
+ };
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <div class="avatar">
3
+ <img v-if="imagem" :src="imagem" />
4
+ <span v-else-if="icone" class="material-symbols-outlined">
5
+ {{ icone }}
6
+ </span>
7
+ </div>
8
+ </template>
9
+ <script lang="ts">
10
+ import { defineComponent } from "vue";
11
+ export default defineComponent({
12
+ props: {
13
+ imagem: {
14
+ type: String,
15
+ },
16
+ icone: {
17
+ type: String,
18
+ },
19
+ },
20
+ setup() {
21
+ return {};
22
+ },
23
+ });
24
+ </script>
25
+ <style scoped>
26
+ .avatar {
27
+ background: var(--cor-secundaria);
28
+ color: var(--cor-apoio);
29
+ width: 6rem;
30
+ height: 6rem;
31
+ border-radius: 50%;
32
+ display: flex;
33
+ flex-direction: row;
34
+ justify-content: center;
35
+ align-items: center;
36
+ aspect-ratio: 1 / 1;
37
+ }
38
+
39
+ .avatar img {
40
+ aspect-ratio: 1 / 1;
41
+ width: 100%;
42
+ height: 100%;
43
+ object-fit: cover;
44
+ object-position: center;
45
+ border-radius: 50%;
46
+ }
47
+
48
+ .avatar span {
49
+ font-size: 3rem;
50
+ }
51
+ </style>
@@ -0,0 +1,41 @@
1
+ import '@fontsource/material-icons';
2
+ import BoxData from './BoxData.vue';
3
+ import { Meta, StoryFn } from '@storybook/vue3';
4
+
5
+ export default {
6
+ title: 'Devix/Timeline/Atomos/BoxData',
7
+ component: BoxData,
8
+ argTypes: {
9
+ // dataBox: { control: { type: String } },
10
+ aparencia: {
11
+ control: { type: 'select' },
12
+ options: ['padrao', 'escuro', 'claro'],
13
+ },
14
+ },
15
+ } as Meta<typeof BoxData>;
16
+
17
+ const Template: StoryFn<typeof BoxData> = (args) => ({
18
+ components: { BoxData },
19
+ setup() {
20
+ return { args };
21
+ },
22
+ template: '<BoxData v-bind="args" />',
23
+ });
24
+
25
+ export const Padrao = Template.bind({});
26
+ Padrao.args = {
27
+ dataNumero: '01',
28
+ aparencia: 'padrao',
29
+ };
30
+
31
+ export const Escuro = Template.bind({});
32
+ Escuro.args = {
33
+ dataNumero: '01',
34
+ aparencia: 'escuro',
35
+ };
36
+
37
+ export const Claro = Template.bind({});
38
+ Claro.args = {
39
+ dataNumero: '01',
40
+ aparencia: 'claro',
41
+ };
@@ -0,0 +1,57 @@
1
+ <template>
2
+ <h3 class="boxData padrao" :class="classes">{{ dataNumero }}</h3>
3
+ </template>
4
+ <script lang="ts">
5
+ import { defineComponent, reactive, computed } from 'vue';
6
+
7
+ export default defineComponent({
8
+ name: 'BoxData',
9
+ props: {
10
+ dataNumero: {
11
+ required: true,
12
+ type: Number,
13
+ },
14
+ aparencia: {
15
+ type: String,
16
+ },
17
+ },
18
+ components: {},
19
+ setup(props) {
20
+ props = reactive(props);
21
+ return {
22
+ classes: computed(() => ({
23
+ [`${props.aparencia || 'padrao'}`]: true,
24
+ })),
25
+ };
26
+ },
27
+ });
28
+ </script>
29
+
30
+ <style scoped>
31
+ .boxData {
32
+ line-height: 3.5rem;
33
+ border-radius: 0.5rem;
34
+ background: var(--cor-primaria);
35
+ color: var(--cor-secundaria);
36
+ margin: 0;
37
+ width: 3.5rem;
38
+ height: 3.5rem;
39
+ text-align: center;
40
+ }
41
+
42
+ .padrao {
43
+ background: var(--cor-primaria);
44
+ color: var(--cor-secundaria);
45
+ }
46
+
47
+ .escuro {
48
+ background: var(--cor-secundaria);
49
+ color: var(--cor-primaria);
50
+ }
51
+
52
+ .claro {
53
+ background: var(--cor-terciaria);
54
+ color: var(--cor-secundaria);
55
+ box-shadow: 0px 0px 10px 0px #0000001c;
56
+ }
57
+ </style>
@@ -0,0 +1,24 @@
1
+ import '@fontsource/material-icons';
2
+ import Destaque from './Destaque.vue';
3
+ import { Meta, StoryFn } from '@storybook/vue3';
4
+
5
+ export default {
6
+ title: 'Devix/Timeline/Atomos/Destaque',
7
+ component: Destaque,
8
+ argTypes: {
9
+ // subtitulo: { control: { type: String } },
10
+ },
11
+ } as Meta<typeof Destaque>;
12
+
13
+ const DestaqueoMock = 'Texto alinhado a direita';
14
+
15
+ const Template: StoryFn<typeof Destaque> = (args) => ({
16
+ components: { Destaque },
17
+ setup() {
18
+ return { args };
19
+ },
20
+ template: '<Destaque v-bind="args" />',
21
+ });
22
+
23
+ export const Padrao = Template.bind({});
24
+ Padrao.args = { destaque: DestaqueoMock };
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <div class="destaqueEvento texto-pequeno">{{ destaque }}</div>
3
+ </template>
4
+ <script lang="ts">
5
+ import { defineComponent } from 'vue';
6
+
7
+ export default defineComponent({
8
+ name: 'destaque',
9
+ props: {
10
+ destaque: {
11
+ type: String,
12
+ },
13
+ },
14
+ components: {},
15
+ setup() {
16
+ return {};
17
+ },
18
+ });
19
+ </script>
20
+ <style scoped>
21
+ .realizado .destaqueEvento,
22
+ .cancelado .destaqueEvento,
23
+ .adiado .destaqueEvento {
24
+ opacity: 0.4;
25
+ }
26
+ .destaqueEvento {
27
+ display: table-cell;
28
+ text-align: right;
29
+ width: 15%;
30
+ line-height: 1em;
31
+ color: var(--cor-texto);
32
+ padding: 1.4rem;
33
+ vertical-align: middle;
34
+ }
35
+
36
+ .bg-selecionado .destaqueEvento {
37
+ color: var(--cor-texto-selecao);
38
+ }
39
+ </style>
@@ -0,0 +1,36 @@
1
+ import Hora from './Hora.vue';
2
+ import { Meta, StoryFn } from '@storybook/vue3';
3
+
4
+ export default {
5
+ title: 'Devix/Timeline/Atomos/Hora',
6
+ component: Hora,
7
+ argTypes: {
8
+ // hora: { control: { type: String } },
9
+ aparencia: {
10
+ control: { type: 'select' },
11
+ options: ['padrao', 'riscada'],
12
+ },
13
+ },
14
+ } as Meta<typeof Hora>;
15
+
16
+ const horaMock = '2023-12-10T09:00Z';
17
+
18
+ const Template: StoryFn<typeof Hora> = (args) => ({
19
+ components: { Hora },
20
+ setup() {
21
+ return { args };
22
+ },
23
+ template: '<Hora v-bind="args" />',
24
+ });
25
+
26
+ export const Padrao = Template.bind({});
27
+ Padrao.args = {
28
+ hora: horaMock,
29
+ aparencia: 'padrao',
30
+ };
31
+
32
+ export const Riscada = Template.bind({});
33
+ Riscada.args = {
34
+ hora: horaMock,
35
+ aparencia: 'riscada',
36
+ };