@policystudio/policy-studio-ui-vue 1.1.90-beta.30 → 1.1.90-beta.32

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 (76) hide show
  1. package/dist/css/psui_styles_output.css +5679 -6077
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/doc/.nvmrc +1 -0
  6. package/doc/.storybook/PolicyStudio.ts +11 -0
  7. package/doc/.storybook/main.ts +27 -0
  8. package/doc/.storybook/manager.ts +7 -0
  9. package/doc/.storybook/preview.ts +16 -0
  10. package/doc/package-lock.json +22653 -0
  11. package/doc/package.json +71 -0
  12. package/doc/shims-vue.d.ts +6 -0
  13. package/doc/src/assets/images/multifamily-units.svg +10 -0
  14. package/doc/src/assets/images/policy-studio.svg +15 -0
  15. package/doc/src/contents/ComparisonData.ts +378 -0
  16. package/doc/src/contents/FlexibleData.ts +502 -0
  17. package/doc/src/contents/ResultsData.ts +531 -0
  18. package/doc/src/stories/Accordion.stories.ts +58 -0
  19. package/doc/src/stories/BadgeWithIcon.stories.ts +31 -0
  20. package/doc/src/stories/BarChart.stories.ts +17 -0
  21. package/doc/src/stories/Breadcrumb.stories.ts +22 -0
  22. package/doc/src/stories/Button.stories.ts +130 -0
  23. package/doc/src/stories/CardInfos.stories.ts +15 -0
  24. package/doc/src/stories/ChartLegend.stories.ts +15 -0
  25. package/doc/src/stories/Checkbox.stories.ts +45 -0
  26. package/doc/src/stories/CheckboxSimple.stories.ts +49 -0
  27. package/doc/src/stories/Chips.stories.ts +30 -0
  28. package/doc/src/stories/ClimateZoneBadge.stories.ts +18 -0
  29. package/doc/src/stories/Collapse.stories.ts +46 -0
  30. package/doc/src/stories/Colors.mdx +70 -0
  31. package/doc/src/stories/CostEffectBar.stories.ts +24 -0
  32. package/doc/src/stories/Datatable.stories.ts +53 -0
  33. package/doc/src/stories/DateCardInfo.stories.ts +20 -0
  34. package/doc/src/stories/Dialog.stories.ts +131 -0
  35. package/doc/src/stories/Draggable.stories.ts +23 -0
  36. package/doc/src/stories/Dropdown.stories.ts +100 -0
  37. package/doc/src/stories/DropdownList.stories.ts +213 -0
  38. package/doc/src/stories/ElevationSystem.mdx +41 -0
  39. package/doc/src/stories/HighlightRippleDot.stories.ts +16 -0
  40. package/doc/src/stories/Icon.stories.ts +23 -0
  41. package/doc/src/stories/InlineSelector.stories.ts +18 -0
  42. package/doc/src/stories/Input.stories.ts +243 -0
  43. package/doc/src/stories/InputSelect.stories.ts +31 -0
  44. package/doc/src/stories/InputTextArea.stories.ts +25 -0
  45. package/doc/src/stories/Introduction.mdx +211 -0
  46. package/doc/src/stories/MiniTag.stories.ts +59 -0
  47. package/doc/src/stories/ProgressBar.stories.ts +24 -0
  48. package/doc/src/stories/RadioButton.stories.ts +40 -0
  49. package/doc/src/stories/RadioButtonSimple.stories.ts +43 -0
  50. package/doc/src/stories/SimpleAlert.stories.ts +22 -0
  51. package/doc/src/stories/Slider.stories.ts +79 -0
  52. package/doc/src/stories/Switch.stories.ts +39 -0
  53. package/doc/src/stories/TabHeader.stories.ts +57 -0
  54. package/doc/src/stories/TableResults.stories.ts +728 -0
  55. package/doc/src/stories/TagScope.stories.ts +18 -0
  56. package/doc/src/stories/TestimonialCard.stories.ts +27 -0
  57. package/doc/src/stories/Toast.stories.ts +52 -0
  58. package/doc/src/stories/Toggle.stories.ts +48 -0
  59. package/doc/src/stories/Tooltip.stories.ts +114 -0
  60. package/doc/src/stories/Typography.mdx +212 -0
  61. package/doc/src/stories/assets/code-brackets.svg +1 -0
  62. package/doc/src/stories/assets/colors.svg +1 -0
  63. package/doc/src/stories/assets/comments.svg +1 -0
  64. package/doc/src/stories/assets/direction.svg +1 -0
  65. package/doc/src/stories/assets/flow.svg +1 -0
  66. package/doc/src/stories/assets/plugin.svg +1 -0
  67. package/doc/src/stories/assets/repo.svg +1 -0
  68. package/doc/src/stories/assets/stackalt.svg +1 -0
  69. package/doc/tsconfig.json +17 -0
  70. package/package.json +7 -3
  71. package/scripts/gulp.js +11 -0
  72. package/src/assets/scss/base.scss +3 -34
  73. package/src/assets/scss/components/PsAccordion.scss +1 -1
  74. package/src/assets/scss/components/PsCollapse.css +74 -0
  75. package/src/components/collapse/PsCollapse.vue +121 -0
  76. package/src/index.ts +4 -1
@@ -0,0 +1,131 @@
1
+ import PsDialog from '../../../src/components/notifications/PsDialog.vue'
2
+
3
+ export default {
4
+ title: 'Notifications/Dialog',
5
+ component: PsDialog,
6
+ }
7
+ // @ts-ignore
8
+ const TemplateExamples = (args, { argTypes }) => ({
9
+ props: Object.keys(argTypes),
10
+ components: { PsDialog },
11
+ template: `
12
+ <div class="psui-grid psui-grid-cols-3 psui-gap-4">
13
+
14
+ <div class="psui-col-span-3 psui-mt-8">
15
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">PSDialog Horizontal</h1>
16
+ </div>
17
+
18
+ <div>
19
+ <h2>Informative</h2>
20
+ <PsDialog theme="informative" layout="horizontal" message="teste">
21
+ <template v-slot:action>
22
+ <p style='font-weight: 700;'>Action</p>
23
+ </template>
24
+ </PsDialog>
25
+ </div>
26
+
27
+ <div>
28
+ <h2>Success</h2>
29
+ <PsDialog theme="success" layout="horizontal" :hasClose="false">
30
+ <template>
31
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
32
+ </template>
33
+ <template v-slot:action>
34
+ <p style='font-weight: 700;'>Action</p>
35
+ </template>
36
+ </PsDialog>
37
+ </div>
38
+
39
+ <div>
40
+ <h2>Alert</h2>
41
+ <PsDialog theme="alert" layout="horizontal">
42
+ <template>
43
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
44
+ </template>
45
+ <template v-slot:action>
46
+ <p style='font-weight: 700;'>Action</p>
47
+ </template>
48
+ </PsDialog>
49
+ </div>
50
+
51
+ <div class="psui-col-span-3 psui-mt-8">
52
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">PSDialog Vertical</h1>
53
+ </div>
54
+
55
+ <div>
56
+ <h2>Informative</h2>
57
+ <PsDialog theme="informative" layout="vertical">
58
+ <template>
59
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
60
+ </template>
61
+ <template v-slot:action>
62
+ <p style='font-weight: 700;'>Action</p>
63
+ </template>
64
+ </PsDialog>
65
+ </div>
66
+
67
+ <div class="psui-text-red">
68
+ <h2>Success</h2>
69
+ <PsDialog theme="success" layout="vertical" :hasClose="false">
70
+ <template>
71
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
72
+ </template>
73
+ <template v-slot:action>
74
+ <p style='font-weight: 700;'>Action</p>
75
+ </template>
76
+ </PsDialog>
77
+ </div>
78
+
79
+ <div>
80
+ <h2>Alert</h2>
81
+ <PsDialog theme="alert" layout="vertical">
82
+ <template>
83
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
84
+ </template>
85
+ <template v-slot:action>
86
+ <p style='font-weight: 700;'>Action</p>
87
+ </template>
88
+ </PsDialog>
89
+ </div>
90
+
91
+
92
+
93
+ <!-- PSDialog Vertical -->
94
+ <div class="psui-col-span-3 psui-mt-8">
95
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">PSDialog Vertical Props Message</h1>
96
+ </div>
97
+
98
+ <div>
99
+ <h2>Informative</h2>
100
+ <PsDialog theme="informative" layout="vertical" message="This component uses only the props message!">
101
+ <template v-slot:action>
102
+ <p style='font-weight: 700;'>Action</p>
103
+ </template>
104
+ </PsDialog>
105
+ </div>
106
+
107
+ <div>
108
+ <h2>Success</h2>
109
+ <PsDialog theme="success" layout="vertical" message="This component uses only the props message!" :hasClose="false">
110
+ <template v-slot:action>
111
+ <p style='font-weight: 700;'>Action</p>
112
+ </template>
113
+ </PsDialog>
114
+ </div>
115
+
116
+ <div>
117
+ <h2>Alert</h2>
118
+ <PsDialog theme="alert" layout="vertical" message="This component uses only the props message!">
119
+ <template v-slot:action>
120
+ <p style='font-weight: 700;'>Action</p>
121
+ </template>
122
+ </PsDialog>
123
+ </div>
124
+
125
+ </div>
126
+ `,
127
+ })
128
+
129
+ export const Examples = TemplateExamples.bind({})
130
+
131
+
@@ -0,0 +1,23 @@
1
+ import PsDraggable from '../../../src/components/controls/PsDraggable.vue'
2
+
3
+ export default {
4
+ title: 'Controls & Selectors/Draggable',
5
+ component: PsDraggable
6
+ }
7
+ // @ts-ignore
8
+ const Template = (args, {argTypes}) => ({
9
+ props: Object.keys(argTypes),
10
+ components: { PsDraggable },
11
+ template: `
12
+ <div style='width: 300px; font-family: "Lato", sans-serif; font-size: 12px;'>
13
+ <PsDraggable v-bind='$props'/>
14
+ </div>
15
+ `
16
+ })
17
+
18
+ export const Component = Template.bind({})
19
+ // @ts-ignore
20
+ Component.args = {
21
+ getColumns: {columnGroups:[{title: 'COST EFFECTIVENESS', columns: [ 'Item 1' , 'Item 2' , 'Item 3', 'Item 4']}, {title: 'PER HOME RESULTS', columns: [ 'Item 1' , 'Item 2' , 'Item 3', 'Item 4']}]},
22
+ module: 'comparison'
23
+ }
@@ -0,0 +1,100 @@
1
+ import PsDropdown from '../../../src/components/forms/PsDropdown.vue'
2
+ import PsDropdownList from '../../../src/components/forms/PsDropdownList.vue'
3
+ export default {
4
+ title: 'Components/Dropdown',
5
+ component: { PsDropdown, PsDropdownList },
6
+ }
7
+ // @ts-ignore
8
+ const Template = (args, { argTypes }) => ({
9
+ props: Object.keys(argTypes),
10
+ components: { PsDropdown, PsDropdownList },
11
+ template: `
12
+ <div style='background: #E6ECF2; width:1200px; height: 700px; padding: 20px;' class='psui-flex psui-gap-64 psui-bg-gray-20 '>
13
+ <PsDropdown>
14
+ <template #dropdownTrigger>
15
+ <i class='psui-icon psui-text-gray-50 psui-cursor-pointer psui-h-2'>more_horiz</i>
16
+ </template>
17
+ <template #items>
18
+ <div class='psui-pb-5'>
19
+ <p class='psui-uppercase psui-text-gray-40 psui-text-accentSmall' style='padding: 24px 20px 8px 20px;'>divider label</p>
20
+
21
+ <ul>
22
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 01</li>
23
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 02</li>
24
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 03</li>
25
+
26
+ <p class='psui-uppercase psui-text-gray-40 psui-text-accentSmall' style='padding: 24px 24px 8px 24px;'>divider label</p>
27
+
28
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 04</li>
29
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 05</li>
30
+ <li style='padding: 7px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer'>Selectable option 06</li>
31
+ </ul>
32
+ </div>
33
+ </template>
34
+ </PsDropdown>
35
+
36
+ <PsDropdown>
37
+ <template #dropdownTrigger>
38
+ <i class='psui-icon psui-text-gray-50 psui-cursor-pointer psui-h-2'>more_horiz</i>
39
+ </template>
40
+ <template #items>
41
+ <div class='psui-pb-5'>
42
+ <p class='psui-uppercase psui-text-gray-40 psui-text-accentSmall' style='padding: 24px 24px 8px 24px;'>divider label</p>
43
+
44
+ <ul>
45
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>public</i><span>Selectable option 01</span></li>
46
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>share</i><span>Selectable option 02</span></li>
47
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>person</i><span>Selectable option 03</span></li>
48
+
49
+ <p class='psui-uppercase psui-text-gray-40 psui-text-accentSmall' style='padding: 24px 24px 8px 24px;'>divider label</p>
50
+
51
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>settings</i><span>Selectable option 04</span></li>
52
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>save</i><span>Selectable option 05</span></li>
53
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>equalizer</i><span>Selectable option 06</span></li>
54
+ </ul>
55
+ </div>
56
+ </template>
57
+ </PsDropdown>
58
+
59
+ <PsDropdown>
60
+ <template #dropdownTrigger>
61
+ <i class='psui-icon psui-text-gray-50 psui-cursor-pointer psui-h-auto'>more_horiz</i>
62
+ </template>
63
+ <template #items>
64
+ <PsDropdownList v-bind='$props'></PsDropdownList>
65
+ </template>
66
+ </PsDropdown>
67
+
68
+ <PsDropdown>
69
+ <template #dropdownTrigger>
70
+ <i class='psui-icon psui-text-gray-50 psui-cursor-pointer psui-h-auto'>more_horiz</i>
71
+ </template>
72
+ <template #items>
73
+ <div class='psui-my-3'>
74
+ <ul>
75
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>public</i><span>Selectable option 01</span></li>
76
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>share</i><span>Selectable option 02</span></li>
77
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>person</i><span>Selectable option 03</span></li>
78
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>settings</i><span>Selectable option 04</span></li>
79
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>save</i><span>Selectable option 05</span></li>
80
+ <li style='padding: 5px 20px; font-size:14px' class='hover:psui-bg-blue-10 hover:psui-text-blue-60 psui-text-gray-60 psui-font-bold psui-cursor-pointer psui-flex psui-items-center psui-gap-3'><i style='font-size: 22px;' class='psui-icon'>equalizer</i><span>Selectable option 06</span></li>
81
+ </ul>
82
+ </div>
83
+ </template>
84
+ </PsDropdown>
85
+ </div>
86
+ `,
87
+ })
88
+
89
+ export const DropdownMenu = Template.bind({})
90
+ // @ts-ignore
91
+ DropdownMenu.args = {
92
+ items: [
93
+ 'Selectable option 01',
94
+ 'Selectable option 02',
95
+ 'Selectable option 03',
96
+ 'Selectable option 04',
97
+ 'Selectable option 05',
98
+ 'Selectable option 06',
99
+ ],
100
+ }
@@ -0,0 +1,213 @@
1
+ // @ts-ignore
2
+ import PsDropdownList, { itemStyle } from '../../../src/components/forms/PsDropdownList.vue'
3
+ export default {
4
+ title: 'Components/Dropdown/Dropdown List',
5
+ component: { PsDropdownList },
6
+ argTypes: {
7
+ layout: {
8
+ control: {
9
+ type: 'inline-radio',
10
+ options: itemStyle
11
+ }
12
+ },
13
+ rigthLabelFormatter: {
14
+ control: {
15
+ type: 'select',
16
+ options: [null, 'label', 'function']
17
+ }
18
+ }
19
+ }
20
+ }
21
+ // @ts-ignore
22
+ const Template = (args, { argTypes }) => ({
23
+ props: Object.keys(argTypes),
24
+ components: { PsDropdownList },
25
+ data: () => ({
26
+ selected: item,
27
+ onlyTextItems: onlyTextItems,
28
+ richItems: richItems,
29
+ }),
30
+ template: `
31
+ <div style="width:100%;" class="psui-flex psui-gap-8 psui-bg-gray-20 psui-rounded-xl psui-p-10">
32
+ <div class="psui-w-1/2">
33
+ <p class="psui-text-h4 psui-font-bold psui-text-blue-80 psui-mb-2">OnlyText</p>
34
+
35
+ <div class="psui-rounded psui-bg-white psui-shadow-elevation-20 psui-py-3">
36
+ <PsDropdownList
37
+ v-bind="$props"
38
+ :items="onlyTextItems"
39
+ :selected.sync="selected"
40
+ left-label="title"
41
+ key-value="key"
42
+ layout="onlytext"
43
+ :study-data="study_data"
44
+ />
45
+ </div>
46
+ </div>
47
+
48
+ <div class="psui-w-1/2">
49
+ <p class="psui-text-h4 psui-font-bold psui-text-blue-80 psui-mb-2">Rich</p>
50
+
51
+ <div class="psui-rounded psui-bg-white psui-shadow-elevation-20 psui-py-3">
52
+ <PsDropdownList
53
+ v-bind="$props"
54
+ :items="richItems"
55
+ :selected.sync="selected"
56
+ left-label="title"
57
+ key-value="key"
58
+ layout="rich"
59
+ :study-data="study_data"
60
+ />
61
+ </div>
62
+ </div>
63
+ </div>
64
+ `,
65
+ })
66
+
67
+ const onlyTextItems = [
68
+ {
69
+ 'key': 'item_01',
70
+ 'title': 'Dropdown Item',
71
+ },
72
+ {
73
+ 'key': 'item_02',
74
+ 'title': 'Dropdown Item',
75
+ },
76
+ {
77
+ 'key': 'item_03',
78
+ 'title': 'Dropdown Item',
79
+ },
80
+ {
81
+ 'key': 'item_04',
82
+ 'title': 'Dropdown Item',
83
+ },
84
+ {
85
+ 'key': 'item_05',
86
+ 'title': 'Dropdown Item',
87
+ },
88
+ {
89
+ 'key': 'item_06',
90
+ 'title': 'Dropdown Item',
91
+ },
92
+ ]
93
+
94
+ const richItems = [
95
+ {
96
+ 'isActive': true,
97
+ 'key': 'forecast_units_affected',
98
+ 'title': 'Affected Units',
99
+ 'description': '(lifecycle)',
100
+ 'right_label': '00',
101
+ 'hasProjections': true,
102
+ 'hasHelper': {
103
+ 'type': 'helpers',
104
+ 'id': 17,
105
+ 'slug': 'forecast_units_affected'
106
+ },
107
+ 'chartProjection': {
108
+ 'title': 'Number of Affected Units',
109
+ 'subtitle': ''
110
+ }
111
+ },
112
+ {
113
+ 'isActive': false,
114
+ 'key': 'forecast_initial_cost',
115
+ 'title': 'Compliance Cost',
116
+ 'description': '(lifecycle)',
117
+ 'right_label': '00',
118
+ 'hasProjections': true,
119
+ 'hasHelper': {
120
+ 'type': 'helpers',
121
+ 'id': 20,
122
+ 'slug': 'forecast_initial_cost'
123
+ },
124
+ 'chartProjection': {
125
+ 'title': 'Compliance Cost',
126
+ 'subtitle': ''
127
+ }
128
+ },
129
+ {
130
+ 'isActive': true,
131
+ 'key': 'forecast_emissions_savings',
132
+ 'title': 'Emissions Reductions',
133
+ 'description': '(lifecycle MTCO²e)',
134
+ 'right_label': '00',
135
+ 'hasProjections': true,
136
+ 'hasHelper': {
137
+ 'type': 'helpers',
138
+ 'id': 18,
139
+ 'slug': 'forecast_emissions_savings'
140
+ },
141
+ 'chartProjection': {
142
+ 'title': 'Emissions Reductions',
143
+ 'subtitle': 'MTCO²e'
144
+ }
145
+ },
146
+ {
147
+ 'isActive': true,
148
+ 'key': 'forecast_lifecycle_savings',
149
+ 'title': 'Lifecycle Savings',
150
+ 'description': '(on-bill)',
151
+ 'right_label': '00',
152
+ 'hasProjections': true,
153
+ 'hasHelper': {
154
+ 'type': 'helpers',
155
+ 'id': 19,
156
+ 'slug': 'forecast_lifecycle_savings'
157
+ },
158
+ 'chartProjection': {
159
+ 'title': 'Bill Savings',
160
+ 'subtitle': ''
161
+ }
162
+ },
163
+ {
164
+ 'isActive': false,
165
+ 'key': 'forecast_kwh_savings',
166
+ 'title': 'Electricity Savings',
167
+ 'description': '(lifecycle kWh)',
168
+ 'right_label': '00',
169
+ 'hasProjections': true,
170
+ 'hasHelper': {
171
+ 'type': 'helpers',
172
+ 'id': 21,
173
+ 'slug': 'forecast_kwh_savings'
174
+ },
175
+ 'chartProjection': {
176
+ 'title': 'Electricity Savings',
177
+ 'subtitle': 'kWh'
178
+ }
179
+ },
180
+ {
181
+ 'isActive': false,
182
+ 'key': 'forecast_therms_savings',
183
+ 'title': 'Gas Savings',
184
+ 'description': '(lifecycle therms)',
185
+ 'right_label': '00',
186
+ 'hasProjections': true,
187
+ 'hasHelper': {
188
+ 'type': 'helpers',
189
+ 'id': 22,
190
+ 'slug': 'forecast_therms_savings'
191
+ },
192
+ 'chartProjection': {
193
+ 'title': 'Gas Savings',
194
+ 'subtitle': 'therms'
195
+ }
196
+ }
197
+ ]
198
+ const item = richItems[0]
199
+ const studyData = {
200
+ 'forecast_units_affected': 7001.75,
201
+ 'forecast_emissions_savings': 17575.66588897,
202
+ 'forecast_therms_savings': 5060589.279978376,
203
+ 'forecast_kwh_savings': -104561078.77158748,
204
+ 'forecast_lifecycle_savings': -40645997.14350001,
205
+ 'forecast_initial_cost': -21144739.311334003
206
+ }
207
+
208
+ export const DropdownList = Template.bind({})
209
+ // @ts-ignore
210
+ DropdownList.args = {
211
+ items: onlyTextItems,
212
+ study_data: studyData,
213
+ }
@@ -0,0 +1,41 @@
1
+ import { Meta, Story } from '@storybook/addon-docs';
2
+
3
+ <Meta title="Elevation system" />
4
+
5
+ <style>{`
6
+ .mx-auto { margin: 0 auto; }
7
+ `}</style>
8
+
9
+ # Elevation system
10
+ Elevation is the distance between two surfaces on the z-axis. Evidenced by the use of shadows.
11
+
12
+ ## 1. Introduction
13
+ Elevation is evidenced by the use of shadows. It's another way to establish a visual hierarchy, create prominence, and increase contrast between interface elements and regions. Because shadows express the degree of elevation between surfaces, they must be used consistently across the tool.
14
+
15
+ ### 1.1. Shadow and light
16
+ The shadows in our elements are projected by these two light sources: main light and ambient light.
17
+ <div class="psui-grid psui-grid-cols-3 psui-gap-4">
18
+ <div class="psui-bg-gray-20 psui-pt-8">
19
+ <div class="psui-bg-white psui-w-48 psui-h-48 psui-rounded-md psui-shadow mx-auto"></div>
20
+ <p class="psui-text-center">Shadow cast by main light</p>
21
+ </div>
22
+ <div class="psui-bg-gray-20 psui-pt-8">
23
+ <div class="psui-bg-white psui-w-48 psui-h-48 psui-rounded-md psui-shadow-sm mx-auto"></div>
24
+ <p class="psui-text-center">Shadow cast by ambient light</p>
25
+ </div>
26
+ <div class="psui-bg-gray-20 psui-pt-8">
27
+ <div class="psui-bg-white psui-w-48 psui-h-48 psui-rounded-md psui-shadow-md mx-auto"></div>
28
+ <p class="psui-text-center">Combined shadow from main and ambient lights</p>
29
+ </div>
30
+ </div>
31
+
32
+ ## 2. Elevation system
33
+ Shadows provide cues about depth, direction of movement, and surface edges. A surface’s shadow is determined by its elevation and relationship to other surfaces.
34
+ <div class="psui-grid psui-grid-cols-2 psui-gap-6 psui-p-6 psui-bg-gray-20">
35
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-shadow-elevation--5">Elevation -5</div>
36
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-bg-white psui-shadow-elevation-5">Elevation 5</div>
37
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-bg-white psui-shadow-elevation-10">Elevation 10</div>
38
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-bg-white psui-shadow-elevation-20">Elevation 20</div>
39
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-bg-white psui-shadow-elevation-30">Elevation 30</div>
40
+ <div class="psui-rounded-md psui-p-8 psui-h-20 psui-bg-white psui-shadow-elevation-40">Elevation 40</div>
41
+ </div>
@@ -0,0 +1,16 @@
1
+ import PsHighlightRippleDot from '../../../src/components/badges-and-tags/PsHighlightRippleDot.vue'
2
+
3
+ export default {
4
+ title: 'Badges & Tags/Badges/HighlightRippleDot',
5
+ component: PsHighlightRippleDot,
6
+ }
7
+ // @ts-ignore
8
+ const Template = (args, { argTypes }) => ({
9
+ props: Object.keys(argTypes),
10
+ components: { PsHighlightRippleDot },
11
+ template: '<PsHighlightRippleDot v-bind="$props" />',
12
+ })
13
+
14
+ export const HighlightRippleDot = Template.bind({})
15
+ // @ts-ignore
16
+ HighlightRippleDot.args = {}
@@ -0,0 +1,23 @@
1
+ import PsIcon from '../../../src/components/ui/PsIcon.vue'
2
+
3
+ export default {
4
+ title: 'Components/Icon',
5
+ component: PsIcon,
6
+ argTypes: {},
7
+ }
8
+
9
+ // @ts-ignore
10
+ const Template = (args, { argTypes }) => ({
11
+ props: Object.keys(argTypes),
12
+ components: { PsIcon },
13
+ template: `
14
+ <div class='psui-flex'>
15
+ <PsIcon v-bind="$props" type='svg' icon="/images/multifamily-units.svg" />
16
+ <PsIcon v-bind="$props" type='svg' icon="/images/multifamily-units.svg"/>
17
+ </div>
18
+ `,
19
+ })
20
+
21
+ export const IconSimple = Template.bind({})
22
+ // @ts-ignore
23
+ IconSimple.args = {}
@@ -0,0 +1,18 @@
1
+ import PsInlineSelector from '../../../src/components/controls/PsInlineSelector.vue'
2
+
3
+ export default {
4
+ title: 'Controls & Selectors/InlineSelector',
5
+ component: PsInlineSelector,
6
+ }
7
+
8
+ const TemplateDefault = (args:any, {argTypes}:{argTypes:any}) => ({
9
+ props: Object.keys(argTypes),
10
+ components: {PsInlineSelector},
11
+ template: `
12
+ <div style="width: auto; margin-right: auto; display: flex; align-items: center;">
13
+ <PsInlineSelector v-bind="$props"></PsInlineSelector>
14
+ </div>
15
+ `
16
+ })
17
+
18
+ export const Default = TemplateDefault.bind({})