@poveste/app 0.1.3 → 0.2.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.
Files changed (187) hide show
  1. package/dist/app/style/floating.pcss +4 -4
  2. package/dist/app/style/main.pcss +2 -2
  3. package/dist/app/style/sandbox.css +1 -1
  4. package/dist/bundle-main.js +2 -0
  5. package/dist/bundled/App.vue2.js +81 -37
  6. package/dist/bundled/app.css +51 -46
  7. package/dist/bundled/components/HomeView.vue2.js +3 -3
  8. package/dist/bundled/components/app/AppActions.vue.js +5 -0
  9. package/dist/bundled/components/app/AppActions.vue2.js +76 -0
  10. package/dist/bundled/components/app/AppHeader.vue2.js +5 -47
  11. package/dist/bundled/components/app/Breadcrumb.vue.js +1 -1
  12. package/dist/bundled/components/app/Breadcrumb.vue2.js +9 -9
  13. package/dist/bundled/components/app/HomeCounter.vue2.js +5 -5
  14. package/dist/bundled/components/app/InitialLoading.vue2.js +5 -5
  15. package/dist/bundled/components/app/MobileOverlay.vue2.js +5 -5
  16. package/dist/bundled/components/app/TopBar.vue.js +5 -0
  17. package/dist/bundled/components/app/TopBar.vue2.js +73 -0
  18. package/dist/bundled/components/app/TopBarChip.vue.js +13 -0
  19. package/dist/bundled/components/app/TopBarChipItem.vue.js +13 -0
  20. package/dist/bundled/components/base/BaseButton.vue2.js +3 -3
  21. package/dist/bundled/components/base/BaseCheckbox.vue2.js +8 -8
  22. package/dist/bundled/components/base/BaseEmpty.vue.js +2 -2
  23. package/dist/bundled/components/base/BaseKeyboardShortcut.vue2.js +1 -1
  24. package/dist/bundled/components/base/BaseListItem.vue2.js +2 -2
  25. package/dist/bundled/components/base/BaseListItemLink.vue.js +2 -2
  26. package/dist/bundled/components/base/BaseOverflowMenu.vue2.js +4 -4
  27. package/dist/bundled/components/base/BaseOverflowTab.vue.js +3 -3
  28. package/dist/bundled/components/base/BaseSelect.vue2.js +6 -6
  29. package/dist/bundled/components/base/BaseSplitPane.vue.js +1 -1
  30. package/dist/bundled/components/base/BaseSplitPane.vue2.js +20 -16
  31. package/dist/bundled/components/base/BaseTab.vue.js +3 -3
  32. package/dist/bundled/components/base/BaseTag.vue.js +1 -1
  33. package/dist/bundled/components/command/CommandPrompts.vue2.js +5 -5
  34. package/dist/bundled/components/command/CommandPromptsModal.vue2.js +3 -3
  35. package/dist/bundled/components/command/PromptSelect.vue2.js +12 -12
  36. package/dist/bundled/components/command/PromptText.vue2.js +4 -4
  37. package/dist/bundled/components/layout/LayoutItem.vue.js +5 -0
  38. package/dist/bundled/components/layout/LayoutItem.vue2.js +44 -0
  39. package/dist/bundled/components/layout/LayoutItemGroup.vue.js +5 -0
  40. package/dist/bundled/components/layout/LayoutItemGroup.vue2.js +25 -0
  41. package/dist/bundled/components/layout/LayoutModal.vue.js +5 -0
  42. package/dist/bundled/components/layout/LayoutModal.vue2.js +68 -0
  43. package/dist/bundled/components/layout/LayoutPane.vue.js +5 -0
  44. package/dist/bundled/components/layout/LayoutPane.vue2.js +59 -0
  45. package/dist/bundled/components/panel/ControlsComponentPropItem.vue2.js +2 -2
  46. package/dist/bundled/components/panel/ControlsComponentProps.vue2.js +4 -4
  47. package/dist/bundled/components/panel/ControlsComponentState.vue2.js +2 -2
  48. package/dist/bundled/components/panel/PaneTabs.vue2.js +4 -4
  49. package/dist/bundled/components/panel/StatePresets.vue2.js +13 -13
  50. package/dist/bundled/components/panel/StoryControls.vue2.js +6 -6
  51. package/dist/bundled/components/panel/StoryDocs.vue2.js +4 -4
  52. package/dist/bundled/components/panel/StoryEvent.vue2.js +7 -7
  53. package/dist/bundled/components/panel/StoryEvents.vue2.js +1 -1
  54. package/dist/bundled/components/panel/StorySidePanel.vue2.js +58 -47
  55. package/dist/bundled/components/panel/StorySourceCode.vue.js +1 -1
  56. package/dist/bundled/components/panel/StorySourceCode.vue2.js +19 -19
  57. package/dist/bundled/components/search/SearchItem.vue.js +1 -1
  58. package/dist/bundled/components/search/SearchItem.vue2.js +3 -3
  59. package/dist/bundled/components/search/SearchItemContent.vue2.js +9 -9
  60. package/dist/bundled/components/search/SearchLoading.vue2.js +2 -2
  61. package/dist/bundled/components/search/SearchModal.vue2.js +3 -3
  62. package/dist/bundled/components/search/SearchPane.vue2.js +4 -4
  63. package/dist/bundled/components/story/StoryResponsivePreview.vue.js +1 -1
  64. package/dist/bundled/components/story/StoryResponsivePreview.vue2.js +21 -21
  65. package/dist/bundled/components/story/StoryVariantGrid.vue2.js +7 -26
  66. package/dist/bundled/components/story/StoryVariantGridItem.vue.js +1 -1
  67. package/dist/bundled/components/story/StoryVariantGridItem.vue2.js +36 -21
  68. package/dist/bundled/components/story/StoryVariantListItem.vue.js +1 -1
  69. package/dist/bundled/components/story/StoryVariantListItem.vue2.js +5 -5
  70. package/dist/bundled/components/story/StoryVariantSingle.vue.js +1 -1
  71. package/dist/bundled/components/story/StoryVariantSingle.vue2.js +10 -10
  72. package/dist/bundled/components/story/StoryVariantSinglePreviewNative.vue2.js +6 -5
  73. package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue2.js +33 -8
  74. package/dist/bundled/components/story/StoryVariantSingleView.vue2.js +8 -39
  75. package/dist/bundled/components/story/StoryView.vue2.js +21 -11
  76. package/dist/bundled/components/story/StoryViewer.vue.js +1 -1
  77. package/dist/bundled/components/story/StoryViewer.vue2.js +2 -2
  78. package/dist/bundled/components/toolbar/DevOnlyToolbarOpenInEditor.vue2.js +13 -9
  79. package/dist/bundled/components/toolbar/ToolbarBackground.vue.js +1 -1
  80. package/dist/bundled/components/toolbar/ToolbarBackground.vue2.js +62 -33
  81. package/dist/bundled/components/toolbar/ToolbarNewTab.vue2.js +13 -10
  82. package/dist/bundled/components/toolbar/ToolbarResponsiveSize.vue2.js +14 -14
  83. package/dist/bundled/components/toolbar/ToolbarTextDirection.vue2.js +13 -9
  84. package/dist/bundled/components/toolbar/ToolbarTitle.vue.js +4 -1
  85. package/dist/bundled/components/toolbar/ToolbarTitle.vue2.js +30 -7
  86. package/dist/bundled/components/tree/StoryGroup.vue2.js +5 -5
  87. package/dist/bundled/components/tree/StoryList.vue2.js +1 -1
  88. package/dist/bundled/components/tree/StoryListFolder.vue.js +1 -1
  89. package/dist/bundled/components/tree/StoryListFolder.vue2.js +7 -7
  90. package/dist/bundled/components/tree/StoryListItem.vue.js +1 -1
  91. package/dist/bundled/components/tree/StoryListItem.vue2.js +8 -8
  92. package/dist/bundled/index.js +3 -0
  93. package/dist/bundled/sandbox.js +41 -15
  94. package/dist/bundled/stores/layout.js +16 -0
  95. package/dist/bundled/stores/preview-settings.js +19 -4
  96. package/dist/bundled/util/color-scheme.js +27 -0
  97. package/dist/bundled/util/const.js +2 -0
  98. package/dist/bundled/util/dark.js +3 -3
  99. package/dist/bundled/util/keyboard.js +60 -32
  100. package/dist/bundled/util/preview-settings.js +11 -0
  101. package/dist/bundled/util/tooltip.js +2 -2
  102. package/dist/style.css +644 -529
  103. package/package.json +8 -8
  104. package/src/app/App.vue +109 -66
  105. package/src/app/components/HomeView.vue +3 -3
  106. package/src/app/components/app/AppActions.vue +58 -0
  107. package/src/app/components/app/AppHeader.vue +4 -47
  108. package/src/app/components/app/Breadcrumb.vue +8 -8
  109. package/src/app/components/app/HomeCounter.vue +5 -5
  110. package/src/app/components/app/InitialLoading.vue +5 -5
  111. package/src/app/components/app/MobileOverlay.vue +5 -5
  112. package/src/app/components/app/TopBar.vue +60 -0
  113. package/src/app/components/app/TopBarChip.vue +5 -0
  114. package/src/app/components/app/TopBarChipItem.vue +7 -0
  115. package/src/app/components/base/BaseButton.vue +3 -3
  116. package/src/app/components/base/BaseCheckbox.vue +9 -9
  117. package/src/app/components/base/BaseCopyIcon.vue +1 -1
  118. package/src/app/components/base/BaseEmpty.vue +4 -4
  119. package/src/app/components/base/BaseKeyboardShortcut.vue +1 -1
  120. package/src/app/components/base/BaseListItem.vue +3 -3
  121. package/src/app/components/base/BaseListItemLink.vue +3 -3
  122. package/src/app/components/base/BaseOverflowMenu.vue +4 -4
  123. package/src/app/components/base/BaseOverflowTab.vue +3 -3
  124. package/src/app/components/base/BaseSelect.vue +6 -6
  125. package/src/app/components/base/BaseSplitPane.vue +21 -16
  126. package/src/app/components/base/BaseTab.vue +3 -3
  127. package/src/app/components/base/BaseTag.vue +1 -1
  128. package/src/app/components/command/CommandPrompts.vue +5 -5
  129. package/src/app/components/command/CommandPromptsModal.vue +3 -3
  130. package/src/app/components/command/PromptSelect.vue +14 -14
  131. package/src/app/components/command/PromptText.vue +4 -4
  132. package/src/app/components/layout/LayoutItem.vue +36 -0
  133. package/src/app/components/layout/LayoutItemGroup.vue +18 -0
  134. package/src/app/components/layout/LayoutModal.vue +60 -0
  135. package/src/app/components/layout/LayoutPane.vue +45 -0
  136. package/src/app/components/panel/ControlsComponentPropItem.vue +2 -2
  137. package/src/app/components/panel/ControlsComponentProps.vue +3 -3
  138. package/src/app/components/panel/ControlsComponentState.vue +2 -2
  139. package/src/app/components/panel/PaneTabs.vue +4 -4
  140. package/src/app/components/panel/StatePresets.vue +13 -13
  141. package/src/app/components/panel/StoryControls.vue +6 -6
  142. package/src/app/components/panel/StoryDocs.vue +4 -4
  143. package/src/app/components/panel/StoryEvent.vue +7 -7
  144. package/src/app/components/panel/StoryEvents.vue +1 -1
  145. package/src/app/components/panel/StorySidePanel.vue +51 -41
  146. package/src/app/components/panel/StorySourceCode.vue +19 -19
  147. package/src/app/components/search/SearchItem.vue +2 -2
  148. package/src/app/components/search/SearchItemContent.vue +9 -9
  149. package/src/app/components/search/SearchLoading.vue +2 -2
  150. package/src/app/components/search/SearchModal.vue +3 -3
  151. package/src/app/components/search/SearchPane.vue +4 -4
  152. package/src/app/components/story/StoryResponsivePreview.vue +27 -27
  153. package/src/app/components/story/StoryVariantGrid.vue +5 -24
  154. package/src/app/components/story/StoryVariantGridItem.vue +36 -17
  155. package/src/app/components/story/StoryVariantListItem.vue +4 -4
  156. package/src/app/components/story/StoryVariantSingle.vue +9 -9
  157. package/src/app/components/story/StoryVariantSinglePreviewNative.vue +7 -5
  158. package/src/app/components/story/StoryVariantSinglePreviewRemote.vue +37 -7
  159. package/src/app/components/story/StoryVariantSingleView.vue +1 -34
  160. package/src/app/components/story/StoryView.vue +23 -8
  161. package/src/app/components/story/StoryViewer.vue +1 -1
  162. package/src/app/components/toolbar/DevOnlyToolbarOpenInEditor.vue +5 -4
  163. package/src/app/components/toolbar/ToolbarBackground.vue +62 -25
  164. package/src/app/components/toolbar/ToolbarNewTab.vue +5 -4
  165. package/src/app/components/toolbar/ToolbarResponsiveSize.vue +15 -15
  166. package/src/app/components/toolbar/ToolbarTextDirection.vue +5 -4
  167. package/src/app/components/toolbar/ToolbarTitle.vue +32 -8
  168. package/src/app/components/tree/StoryGroup.vue +5 -5
  169. package/src/app/components/tree/StoryList.vue +1 -1
  170. package/src/app/components/tree/StoryListFolder.vue +6 -6
  171. package/src/app/components/tree/StoryListItem.vue +6 -6
  172. package/src/app/index.ts +3 -0
  173. package/src/app/sandbox.ts +59 -15
  174. package/src/app/stores/layout.ts +22 -0
  175. package/src/app/stores/preview-settings.ts +26 -2
  176. package/src/app/style/floating.pcss +4 -4
  177. package/src/app/style/main.pcss +2 -2
  178. package/src/app/style/sandbox.css +1 -1
  179. package/src/app/types.ts +49 -0
  180. package/src/app/util/color-scheme.ts +36 -0
  181. package/src/app/util/const.ts +1 -0
  182. package/src/app/util/dark.ts +3 -3
  183. package/src/app/util/keyboard.ts +65 -32
  184. package/src/app/util/preview-settings.ts +16 -0
  185. package/src/app/util/tooltip.ts +2 -2
  186. package/src/bundle-main.js +2 -0
  187. package/src/shim.d.ts +2 -2
@@ -12,14 +12,14 @@ defineProps<{
12
12
 
13
13
  <template>
14
14
  <div class="poveste-controls-component-props">
15
- <div class="htw-font-mono htw-p-2 htw-flex htw-items-center htw-gap-1">
15
+ <div class="ptw-font-mono ptw-p-2 ptw-flex ptw-items-center ptw-gap-1">
16
16
  <Icon
17
17
  v-tooltip="'Auto-detected props'"
18
18
  icon="carbon:flash"
19
- class="htw-w-4 htw-h-4 htw-text-primary-500 htw-flex-none"
19
+ class="ptw-w-4 ptw-h-4 ptw-text-primary-500 ptw-flex-none"
20
20
  />
21
21
  <div>
22
- <span class="htw-opacity-30">&lt;</span>{{ definition.name }}<span class="htw-opacity-30">&gt;</span>
22
+ <span class="ptw-opacity-30">&lt;</span>{{ definition.name }}<span class="ptw-opacity-30">&gt;</span>
23
23
  </div>
24
24
  </div>
25
25
 
@@ -14,11 +14,11 @@ const stateKeys = computed(() => Object.keys(props.variant.state || {})
14
14
 
15
15
  <template>
16
16
  <div class="poveste-controls-component-init-state">
17
- <div class="htw-p-2 htw-flex htw-items-center htw-gap-1">
17
+ <div class="ptw-p-2 ptw-flex ptw-items-center ptw-gap-1">
18
18
  <Icon
19
19
  v-tooltip="'Auto-detected state'"
20
20
  icon="carbon:data-vis-1"
21
- class="htw-w-4 htw-h-4 htw-text-primary-500 htw-flex-none"
21
+ class="ptw-w-4 ptw-h-4 ptw-text-primary-500 ptw-flex-none"
22
22
  />
23
23
  <div>
24
24
  State
@@ -22,7 +22,7 @@ const hasEvents = computed(() => eventsStore.events.length)
22
22
  </script>
23
23
 
24
24
  <template>
25
- <BaseOverflowMenu class="poveste-pane-tabs htw-h-10 htw-flex-none htw-border-b htw-border-gray-100 dark:htw-border-gray-750">
25
+ <BaseOverflowMenu class="poveste-pane-tabs ptw-h-10 ptw-flex-none ptw-border-b ptw-border-gray-100 dark:ptw-border-gray-750">
26
26
  <BaseTab
27
27
  :to="{ ...$route, query: { ...$route.query, tab: '' } }"
28
28
  :matched="!$route.query.tab"
@@ -33,7 +33,7 @@ const hasEvents = computed(() => eventsStore.events.length)
33
33
  :to="{ ...$route, query: { ...$route.query, tab: 'docs' } }"
34
34
  :matched="$route.query.tab === 'docs'"
35
35
  :class="{
36
- 'htw-opacity-50': !renderedDoc,
36
+ 'ptw-opacity-50': !renderedDoc,
37
37
  }"
38
38
  >
39
39
  Docs
@@ -42,7 +42,7 @@ const hasEvents = computed(() => eventsStore.events.length)
42
42
  :to="{ ...$route, query: { ...$route.query, tab: 'events' } }"
43
43
  :matched="$route.query.tab === 'events'"
44
44
  :class="{
45
- 'htw-opacity-50': !hasEvents,
45
+ 'ptw-opacity-50': !hasEvents,
46
46
  }"
47
47
  >
48
48
  Events
@@ -71,7 +71,7 @@ const hasEvents = computed(() => eventsStore.events.length)
71
71
  :to="{ ...$route, query: { ...$route.query, tab: 'events' } }"
72
72
  :matched="$route.query.tab === 'events'"
73
73
  :class="{
74
- 'htw-opacity-50': !hasEvents,
74
+ 'ptw-opacity-50': !hasEvents,
75
75
  }"
76
76
  >
77
77
  Events
@@ -118,10 +118,10 @@ onClickOutside(select, stopEditing)
118
118
  </script>
119
119
 
120
120
  <template>
121
- <div class="poveste-state-presets htw-flex htw-gap-2 htw-w-full htw-items-center">
121
+ <div class="poveste-state-presets ptw-flex ptw-gap-2 ptw-w-full ptw-items-center">
122
122
  <div
123
123
  ref="select"
124
- class="htw-flex-1 htw-min-w-0"
124
+ class="ptw-flex-1 ptw-min-w-0"
125
125
  >
126
126
  <BaseSelect
127
127
  v-model="selectedOption"
@@ -137,37 +137,37 @@ onClickOutside(select, stopEditing)
137
137
  ref="input"
138
138
  v-model="presetStates.get(selectedOption).label"
139
139
  type="text"
140
- class="htw-text-inherit htw-bg-transparent htw-w-full htw-h-full htw-outline-none"
140
+ class="ptw-text-inherit ptw-bg-transparent ptw-w-full ptw-h-full ptw-outline-none"
141
141
  @click.stop.prevent
142
142
  >
143
143
 
144
144
  <div
145
145
  v-else
146
- class="htw-flex htw-items-center htw-gap-2"
146
+ class="ptw-flex ptw-items-center ptw-gap-2"
147
147
  >
148
- <span class="htw-flex-1 htw-truncate">
148
+ <span class="ptw-flex-1 ptw-truncate">
149
149
  {{ label }}
150
150
  </span>
151
151
  <Icon
152
152
  v-if="canEdit"
153
153
  v-tooltip="'Rename this preset'"
154
154
  icon="carbon:edit"
155
- class="htw-flex-none htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100"
155
+ class="ptw-flex-none ptw-cursor-pointer ptw-w-4 ptw-h-4 hover:ptw-text-primary-500 ptw-opacity-50 hover:ptw-opacity-100 dark:hover:ptw-text-primary-400 ptw-text-gray-900 dark:ptw-text-gray-100"
156
156
  @click.stop="startEditing()"
157
157
  />
158
158
  </div>
159
159
  </template>
160
160
 
161
161
  <template #option="{ label, value }">
162
- <div class="htw-flex htw-gap-2 htw-items-center">
162
+ <div class="ptw-flex ptw-gap-2 ptw-items-center">
163
163
  <span
164
- class="htw-flex-1 htw-truncate"
164
+ class="ptw-flex-1 ptw-truncate"
165
165
  >{{ label }}</span>
166
166
  <Icon
167
167
  v-if="value !== DEFAULT_ID"
168
168
  v-tooltip="'Delete this preset'"
169
169
  icon="carbon:trash-can"
170
- class="htw-flex-none htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100"
170
+ class="ptw-flex-none ptw-cursor-pointer ptw-w-4 ptw-h-4 hover:ptw-text-primary-500 ptw-opacity-50 hover:ptw-opacity-100 dark:hover:ptw-text-primary-400 ptw-text-gray-900 dark:ptw-text-gray-100"
171
171
  @click.stop="deletePreset(value)"
172
172
  />
173
173
  </div>
@@ -177,22 +177,22 @@ onClickOutside(select, stopEditing)
177
177
  <Icon
178
178
  v-tooltip="savedNotif ? 'Saved!' : canEdit ? 'Save to preset' : null"
179
179
  :icon="savedNotif ? 'carbon:checkmark' : 'carbon:save'"
180
- class="htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100"
180
+ class="ptw-cursor-pointer ptw-w-4 ptw-h-4 hover:ptw-text-primary-500 dark:hover:ptw-text-primary-400 ptw-text-gray-900 dark:ptw-text-gray-100"
181
181
  :class="[
182
- canEdit ? 'htw-opacity-50 hover:htw-opacity-100' : 'htw-opacity-25 htw-pointer-events-none',
182
+ canEdit ? 'ptw-opacity-50 hover:ptw-opacity-100' : 'ptw-opacity-25 ptw-pointer-events-none',
183
183
  ]"
184
184
  @click="savePreset()"
185
185
  />
186
186
  <Icon
187
187
  v-tooltip="'Create new preset'"
188
188
  icon="carbon:add-alt"
189
- class="htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100"
189
+ class="ptw-cursor-pointer ptw-w-4 ptw-h-4 hover:ptw-text-primary-500 ptw-opacity-50 hover:ptw-opacity-100 dark:hover:ptw-text-primary-400 ptw-text-gray-900 dark:ptw-text-gray-100"
190
190
  @click="createPreset()"
191
191
  />
192
192
  <Icon
193
193
  v-tooltip="'Reset to initial state'"
194
194
  icon="carbon:reset"
195
- class="htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100"
195
+ class="ptw-cursor-pointer ptw-w-4 ptw-h-4 hover:ptw-text-primary-500 ptw-opacity-50 hover:ptw-opacity-100 dark:hover:ptw-text-primary-400 ptw-text-gray-900 dark:ptw-text-gray-100"
196
196
  @click="resetState()"
197
197
  />
198
198
  </div>
@@ -39,11 +39,11 @@ const hasInitState = computed(() => Object
39
39
  <template>
40
40
  <div
41
41
  data-test-id="story-controls"
42
- class="poveste-story-controls htw-flex htw-flex-col htw-divide-y htw-divide-gray-100 dark:htw-divide-gray-750"
42
+ class="poveste-story-controls ptw-flex ptw-flex-col ptw-divide-y ptw-divide-gray-100 dark:ptw-divide-gray-750"
43
43
  >
44
44
  <!-- Toolbar -->
45
45
  <div
46
- class="htw-h-9 htw-flex-none htw-px-2 htw-flex htw-items-center"
46
+ class="ptw-h-9 ptw-flex-none ptw-px-2 ptw-flex ptw-items-center"
47
47
  >
48
48
  <StatePresets
49
49
  v-if="ready || !hasCustomControls"
@@ -59,7 +59,7 @@ const hasInitState = computed(() => Object
59
59
  slot-name="controls"
60
60
  :variant="variant"
61
61
  :story="story"
62
- class="__poveste-render-custom-controls __histoire-render-custom-controls htw-flex-none"
62
+ class="__poveste-render-custom-controls __histoire-render-custom-controls ptw-flex-none"
63
63
  @ready="ready = true"
64
64
  />
65
65
 
@@ -68,7 +68,7 @@ const hasInitState = computed(() => Object
68
68
  v-else-if="hasInitState"
69
69
  >
70
70
  <ControlsComponentState
71
- class="htw-flex-none htw-my-2"
71
+ class="ptw-flex-none ptw-my-2"
72
72
  :variant="variant"
73
73
  />
74
74
  </div>
@@ -76,7 +76,7 @@ const hasInitState = computed(() => Object
76
76
  <BaseEmpty v-else-if="!variant.state?._hPropDefs?.length">
77
77
  <Icon
78
78
  icon="carbon:audio-console"
79
- class="htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6"
79
+ class="ptw-w-8 ptw-h-8 ptw-opacity-50 ptw-mb-6"
80
80
  />
81
81
  <span>No controls available for this story</span>
82
82
  </BaseEmpty>
@@ -90,7 +90,7 @@ const hasInitState = computed(() => Object
90
90
  :key="index"
91
91
  :variant="variant"
92
92
  :definition="def"
93
- class="htw-flex-none htw-my-2"
93
+ class="ptw-flex-none ptw-my-2"
94
94
  />
95
95
  </div>
96
96
  </div>
@@ -170,9 +170,9 @@ const filePath = computed(() => story.value.file?.docsFilePath ?? (props.standal
170
170
  >
171
171
  <div
172
172
  v-if="__POVESTE_DEV__ && renderedDoc && filePath"
173
- class="htw-flex htw-items-center htw-gap-2 htw-p-2"
173
+ class="ptw-flex ptw-items-center ptw-gap-2 ptw-p-2"
174
174
  :class="{
175
- 'htw-pt-4': !standalone,
175
+ 'ptw-pt-4': !standalone,
176
176
  }"
177
177
  >
178
178
  <DevOnlyToolbarOpenInEditor
@@ -187,14 +187,14 @@ const filePath = computed(() => story.value.file?.docsFilePath ?? (props.standal
187
187
  >
188
188
  <Icon
189
189
  icon="carbon:document-unknown"
190
- class="htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6"
190
+ class="ptw-w-8 ptw-h-8 ptw-opacity-50 ptw-mb-6"
191
191
  />
192
192
  No documentation available
193
193
  </BaseEmpty>
194
194
  <div
195
195
  v-else
196
196
  ref="renderedEl"
197
- class="htw-prose dark:htw-prose-invert htw-p-4 htw-max-w-none"
197
+ class="ptw-prose dark:ptw-prose-invert ptw-p-4 ptw-max-w-none"
198
198
  data-test-id="story-docs"
199
199
  v-html="renderedDoc"
200
200
  />
@@ -20,34 +20,34 @@ const formattedArgument = computed(() => {
20
20
 
21
21
  <template>
22
22
  <VDropdown
23
- class="poveste-story-event htw-group"
23
+ class="poveste-story-event ptw-group"
24
24
  placement="right"
25
25
  data-test-id="event-item"
26
26
  >
27
27
  <template #default="{ shown }">
28
28
  <div
29
- class="group-hover:htw-bg-primary-100 dark:group-hover:htw-bg-primary-700 htw-cursor-pointer htw-py-2 htw-px-4 htw-flex htw-items-baseline htw-gap-1 htw-leading-normal"
29
+ class="group-hover:ptw-bg-primary-100 dark:group-hover:ptw-bg-primary-700 ptw-cursor-pointer ptw-py-2 ptw-px-4 ptw-flex ptw-items-baseline ptw-gap-1 ptw-leading-normal"
30
30
  :class="[
31
- shown ? 'htw-bg-primary-50 dark:htw-bg-primary-600' : 'group-odd:htw-bg-gray-100/50 dark:group-odd:htw-bg-gray-750/40',
31
+ shown ? 'ptw-bg-primary-50 dark:ptw-bg-primary-600' : 'group-odd:ptw-bg-gray-100/50 dark:group-odd:ptw-bg-gray-750/40',
32
32
  ]"
33
33
  >
34
34
  <span
35
35
  :class="{
36
- 'htw-text-primary-500': shown,
36
+ 'ptw-text-primary-500': shown,
37
37
  }"
38
38
  >
39
39
  {{ event.name }}
40
40
  </span>
41
41
  <span
42
42
  v-if="event.argument"
43
- class="htw-text-xs htw-opacity-50 htw-truncate"
43
+ class="ptw-text-xs ptw-opacity-50 ptw-truncate"
44
44
  >{{ formattedArgument }}</span>
45
45
  </div>
46
46
  </template>
47
47
 
48
48
  <template #popper>
49
- <div class="htw-overflow-auto htw-max-w-[400px] htw-max-h-[400px]">
50
- <pre class="htw-p-4">{{ event.argument }}</pre>
49
+ <div class="ptw-overflow-auto ptw-max-w-[400px] ptw-max-h-[400px]">
50
+ <pre class="ptw-p-4">{{ event.argument }}</pre>
51
51
  </div>
52
52
  </template>
53
53
  </VDropdown>
@@ -33,7 +33,7 @@ const eventsElement = ref<HTMLDivElement>()
33
33
  >
34
34
  <Icon
35
35
  icon="carbon:event-schedule"
36
- class="htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6"
36
+ class="ptw-w-8 ptw-h-8 ptw-opacity-50 ptw-mb-6"
37
37
  />
38
38
  No event fired
39
39
  </BaseEmpty>
@@ -1,6 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed } from 'vue'
3
3
  import { useRoute } from 'vue-router'
4
+ import { useLayoutStore } from '../../stores/layout'
4
5
  import { useStoryStore } from '../../stores/story'
5
6
 
6
7
  import BaseEmpty from '../base/BaseEmpty.vue'
@@ -12,6 +13,11 @@ import StoryEvents from './StoryEvents.vue'
12
13
  import StorySourceCode from './StorySourceCode.vue'
13
14
 
14
15
  const storyStore = useStoryStore()
16
+ const layoutStore = useLayoutStore()
17
+
18
+ const innerOrientation = computed(() =>
19
+ layoutStore.settings.storyOptionsPlacement === 'bottom' ? 'landscape' : 'portrait',
20
+ )
15
21
 
16
22
  const route = useRoute()
17
23
 
@@ -28,49 +34,53 @@ const panelContentComponent = computed(() => {
28
34
  </script>
29
35
 
30
36
  <template>
31
- <BaseEmpty
32
- v-if="!storyStore.currentVariant"
33
- class="poveste-story-side-panel poveste-selection"
34
- >
35
- <span>Select a variant</span>
36
- </BaseEmpty>
37
+ <div class="ptw-h-full ptw-w-full ptw-p-2">
38
+ <div class="ptw-h-full ptw-w-full ptw-rounded-lg ptw-border ptw-border-gray-200 dark:ptw-border-gray-700 ptw-overflow-hidden ptw-bg-white dark:ptw-bg-gray-700">
39
+ <BaseEmpty
40
+ v-if="!storyStore.currentVariant"
41
+ class="poveste-story-side-panel poveste-selection"
42
+ >
43
+ <span>Select a variant</span>
44
+ </BaseEmpty>
37
45
 
38
- <BaseEmpty
39
- v-else-if="!storyStore.currentVariant.configReady || !storyStore.currentVariant.previewReady"
40
- class="poveste-story-side-panel poveste-loading"
41
- >
42
- <span>Loading...</span>
43
- </BaseEmpty>
46
+ <BaseEmpty
47
+ v-else-if="!storyStore.currentVariant.configReady || !storyStore.currentVariant.previewReady"
48
+ class="poveste-story-side-panel poveste-loading"
49
+ >
50
+ <span>Loading...</span>
51
+ </BaseEmpty>
44
52
 
45
- <BaseSplitPane
46
- v-else
47
- save-id="story-sidepane"
48
- orientation="portrait"
49
- class="poveste-story-side-panel poveste-loaded htw-h-full"
50
- data-test-id="story-side-panel"
51
- >
52
- <template #first>
53
- <div class="htw-flex htw-flex-col htw-h-full">
54
- <PaneTabs
55
- :story="storyStore.currentStory"
56
- :variant="storyStore.currentVariant"
57
- />
53
+ <BaseSplitPane
54
+ v-else
55
+ :save-id="`story-sidepane-${innerOrientation}`"
56
+ :orientation="innerOrientation"
57
+ class="poveste-story-side-panel poveste-loaded ptw-h-full"
58
+ data-test-id="story-side-panel"
59
+ >
60
+ <template #first>
61
+ <div class="ptw-flex ptw-flex-col ptw-h-full">
62
+ <PaneTabs
63
+ :story="storyStore.currentStory"
64
+ :variant="storyStore.currentVariant"
65
+ />
58
66
 
59
- <component
60
- :is="panelContentComponent"
61
- :story="storyStore.currentStory"
62
- :variant="storyStore.currentVariant"
63
- class="htw-h-full htw-overflow-auto"
64
- />
65
- </div>
66
- </template>
67
+ <component
68
+ :is="panelContentComponent"
69
+ :story="storyStore.currentStory"
70
+ :variant="storyStore.currentVariant"
71
+ class="ptw-h-full ptw-overflow-auto"
72
+ />
73
+ </div>
74
+ </template>
67
75
 
68
- <template #last>
69
- <StorySourceCode
70
- :story="storyStore.currentStory"
71
- :variant="storyStore.currentVariant"
72
- class="htw-h-full"
73
- />
74
- </template>
75
- </BaseSplitPane>
76
+ <template #last>
77
+ <StorySourceCode
78
+ :story="storyStore.currentStory"
79
+ :variant="storyStore.currentVariant"
80
+ class="ptw-h-full"
81
+ />
82
+ </template>
83
+ </BaseSplitPane>
84
+ </div>
85
+ </div>
76
86
  </template>
@@ -133,32 +133,32 @@ watch(sourceHtml, async () => {
133
133
 
134
134
  <template>
135
135
  <div
136
- class="poveste-story-source-code htw-bg-gray-50 dark:htw-bg-gray-750 htw-h-full htw-overflow-hidden htw-flex htw-flex-col"
136
+ class="poveste-story-source-code ptw-bg-gray-50 dark:ptw-bg-gray-750 ptw-h-full ptw-overflow-hidden ptw-flex ptw-flex-col"
137
137
  >
138
138
  <!-- Toolbar -->
139
139
  <div
140
140
  v-if="!error"
141
- class="htw-h-10 htw-flex-none htw-border-b htw-border-solid htw-border-gray-500/5 htw-px-4 htw-flex htw-items-center htw-gap-2"
141
+ class="ptw-h-10 ptw-flex-none ptw-border-b ptw-border-solid ptw-border-gray-500/5 ptw-px-4 ptw-flex ptw-items-center ptw-gap-2"
142
142
  >
143
- <div class="htw-text-gray-900 dark:htw-text-gray-100">
143
+ <div class="ptw-text-gray-900 dark:ptw-text-gray-100">
144
144
  Source
145
145
  </div>
146
- <div class="htw-flex-1" />
146
+ <div class="ptw-flex-1" />
147
147
 
148
148
  <!-- Display source modes -->
149
- <div class="htw-flex htw-flex-none htw-gap-px htw-h-full htw-py-2">
149
+ <div class="ptw-flex ptw-flex-none ptw-gap-px ptw-h-full ptw-py-2">
150
150
  <button
151
151
  v-tooltip="!dynamicSourceCode ? 'Dynamic source code is not available' : displayedSource !== 'dynamic' ? 'Switch to dynamic source' : null"
152
- class="htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-1 htw-bg-gray-500/10 htw-rounded-l htw-transition-all htw-ease-[cubic-bezier(0,1,.6,1)] htw-duration-300 htw-overflow-hidden"
152
+ class="ptw-flex ptw-items-center ptw-gap-1 ptw-h-full ptw-px-1 ptw-bg-gray-500/10 ptw-rounded-l ptw-transition-all ptw-ease-[cubic-bezier(0,1,.6,1)] ptw-duration-300 ptw-overflow-hidden"
153
153
  :class="[
154
- displayedSource !== 'dynamic' ? 'htw-max-w-6 htw-opacity-70' : 'htw-max-w-[82px] htw-text-primary-600 dark:htw-text-primary-400',
155
- dynamicSourceCode ? 'htw-cursor-pointer hover:htw-bg-gray-500/30 active:htw-bg-gray-600/50' : 'htw-opacity-50',
154
+ displayedSource !== 'dynamic' ? 'ptw-max-w-6 ptw-opacity-70' : 'ptw-max-w-[82px] ptw-text-primary-600 dark:ptw-text-primary-400',
155
+ dynamicSourceCode ? 'ptw-cursor-pointer hover:ptw-bg-gray-500/30 active:ptw-bg-gray-600/50' : 'ptw-opacity-50',
156
156
  ]"
157
157
  @click="dynamicSourceCode && (displayedSource = 'dynamic')"
158
158
  >
159
159
  <Icon
160
160
  icon="carbon:flash"
161
- class="htw-w-4 htw-h-4 htw-flex-none"
161
+ class="ptw-w-4 ptw-h-4 ptw-flex-none"
162
162
  />
163
163
  <span
164
164
  class="transition-opacity duration-300"
@@ -171,16 +171,16 @@ watch(sourceHtml, async () => {
171
171
  </button>
172
172
  <button
173
173
  v-tooltip="!staticSourceCode ? 'Static source code is not available' : displayedSource !== 'static' ? 'Switch to static source' : null"
174
- class="htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-1 htw-bg-gray-500/10 htw-rounded-r htw-transition-all htw-ease-[cubic-bezier(0,1,.6,1)] htw-duration-300 htw-overflow-hidden"
174
+ class="ptw-flex ptw-items-center ptw-gap-1 ptw-h-full ptw-px-1 ptw-bg-gray-500/10 ptw-rounded-r ptw-transition-all ptw-ease-[cubic-bezier(0,1,.6,1)] ptw-duration-300 ptw-overflow-hidden"
175
175
  :class="[
176
- displayedSource !== 'static' ? 'htw-max-w-6 htw-opacity-70' : 'htw-max-w-[63px] htw-text-primary-600 dark:htw-text-primary-400',
177
- staticSourceCode ? 'htw-cursor-pointer hover:htw-bg-gray-500/30 active:htw-bg-gray-600/50' : 'htw-opacity-50',
176
+ displayedSource !== 'static' ? 'ptw-max-w-6 ptw-opacity-70' : 'ptw-max-w-[63px] ptw-text-primary-600 dark:ptw-text-primary-400',
177
+ staticSourceCode ? 'ptw-cursor-pointer hover:ptw-bg-gray-500/30 active:ptw-bg-gray-600/50' : 'ptw-opacity-50',
178
178
  ]"
179
179
  @click="staticSourceCode && (displayedSource = 'static')"
180
180
  >
181
181
  <Icon
182
182
  icon="carbon:document"
183
- class="htw-w-4 htw-h-4 htw-flex-none"
183
+ class="ptw-w-4 ptw-h-4 ptw-flex-none"
184
184
  />
185
185
  <span
186
186
  class="transition-opacity duration-300"
@@ -195,13 +195,13 @@ watch(sourceHtml, async () => {
195
195
 
196
196
  <HstCopyIcon
197
197
  :content="displayedSourceCode"
198
- class="htw-flex-none"
198
+ class="ptw-flex-none"
199
199
  />
200
200
  </div>
201
201
 
202
202
  <div
203
203
  v-if="error"
204
- class="htw-text-red-500 htw-h-full htw-p-2 htw-overflow-auto htw-font-mono htw-text-sm"
204
+ class="ptw-text-red-500 ptw-h-full ptw-p-2 ptw-overflow-auto ptw-font-mono ptw-text-sm"
205
205
  >
206
206
  Error: {{ error }}
207
207
  </div>
@@ -209,7 +209,7 @@ watch(sourceHtml, async () => {
209
209
  <BaseEmpty v-else-if="!displayedSourceCode">
210
210
  <Icon
211
211
  icon="carbon:code-hide"
212
- class="htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6"
212
+ class="ptw-w-8 ptw-h-8 ptw-opacity-50 ptw-mb-6"
213
213
  />
214
214
  <span>Not available</span>
215
215
  </BaseEmpty>
@@ -217,7 +217,7 @@ watch(sourceHtml, async () => {
217
217
  <textarea
218
218
  v-else-if="!sourceHtml"
219
219
  ref="scroller"
220
- class="__poveste-code-placeholder htw-w-full htw-h-full htw-p-4 htw-outline-none htw-bg-transparent htw-resize-none htw-m-0"
220
+ class="__poveste-code-placeholder ptw-w-full ptw-h-full ptw-p-4 ptw-outline-none ptw-bg-transparent ptw-resize-none ptw-m-0"
221
221
  :value="displayedSourceCode"
222
222
  readonly
223
223
  data-test-id="story-source-code"
@@ -227,12 +227,12 @@ watch(sourceHtml, async () => {
227
227
  <div
228
228
  v-else
229
229
  ref="scroller"
230
- class="htw-w-full htw-h-full htw-overflow-auto"
230
+ class="ptw-w-full ptw-h-full ptw-overflow-auto"
231
231
  data-test-id="story-source-code"
232
232
  @scroll="onScroll"
233
233
  >
234
234
  <div
235
- class="__poveste-code __histoire-code htw-p-4 htw-w-fit"
235
+ class="__poveste-code __histoire-code ptw-p-4 ptw-w-fit"
236
236
  v-html="sourceHtml"
237
237
  />
238
238
  </div>
@@ -59,7 +59,7 @@ function action(fromClick = false) {
59
59
  v-if="'route' in result"
60
60
  :to="result.route"
61
61
  :is-active="selected"
62
- class="htw-px-6 htw-py-4 htw-gap-4"
62
+ class="ptw-px-6 ptw-py-4 ptw-gap-4"
63
63
  @navigate="action(true)"
64
64
  >
65
65
  <SearchItemContent
@@ -71,7 +71,7 @@ function action(fromClick = false) {
71
71
  <BaseListItem
72
72
  v-if="'onActivate' in result"
73
73
  :is-active="selected"
74
- class="htw-px-6 htw-py-4 htw-gap-4"
74
+ class="ptw-px-6 ptw-py-4 ptw-gap-4"
75
75
  @navigate="action(true)"
76
76
  >
77
77
  <SearchItemContent
@@ -23,14 +23,14 @@ const kindLabels = {
23
23
  <template>
24
24
  <BaseIcon
25
25
  :icon="result.icon ?? defaultIcons[result.kind]"
26
- class="htw-w-4 htw-h-4"
26
+ class="ptw-w-4 ptw-h-4"
27
27
  :class="[
28
28
  !selected ? [
29
29
  result.iconColor
30
30
  ? 'bind-icon-color'
31
31
  : {
32
- 'htw-text-primary-500': result.kind === 'story',
33
- 'htw-text-gray-500': result.kind === 'variant',
32
+ 'ptw-text-primary-500': result.kind === 'story',
33
+ 'ptw-text-gray-500': result.kind === 'variant',
34
34
  },
35
35
  ] : [],
36
36
  {
@@ -38,27 +38,27 @@ const kindLabels = {
38
38
  },
39
39
  ]"
40
40
  />
41
- <div class="htw-flex-1">
42
- <div class="htw-flex">
41
+ <div class="ptw-flex-1">
42
+ <div class="ptw-flex">
43
43
  {{ result.title }}
44
- <span class="htw-ml-auto htw-opacity-40">
44
+ <span class="ptw-ml-auto ptw-opacity-40">
45
45
  {{ kindLabels[result.kind] }}
46
46
  </span>
47
47
  </div>
48
48
 
49
49
  <div
50
50
  v-if="result.path?.length"
51
- class="htw-flex htw-items-center htw-gap-0.5 htw-opacity-60"
51
+ class="ptw-flex ptw-items-center ptw-gap-0.5 ptw-opacity-60"
52
52
  >
53
53
  <div
54
54
  v-for="(p, index) of result.path"
55
55
  :key="index"
56
- class="htw-flex htw-items-center htw-gap-0.5"
56
+ class="ptw-flex ptw-items-center ptw-gap-0.5"
57
57
  >
58
58
  <Icon
59
59
  v-if="index > 0"
60
60
  icon="carbon:chevron-right"
61
- class="htw-w-4 htw-h-4 htw-mt-0.5 htw-opacity-50"
61
+ class="ptw-w-4 ptw-h-4 ptw-mt-0.5 ptw-opacity-50"
62
62
  />
63
63
  <span>{{ p }}</span>
64
64
  </div>
@@ -4,11 +4,11 @@ import { Icon } from '@iconify/vue'
4
4
 
5
5
  <template>
6
6
  <div
7
- class="poveste-search-loading htw-flex htw-items-center htw-gap-4 htw-pl-6 htw-border htw-border-transparent focus-visible:htw-border-primary-500 htw-h-[51px] htw-opacity-30"
7
+ class="poveste-search-loading ptw-flex ptw-items-center ptw-gap-4 ptw-pl-6 ptw-border ptw-border-transparent focus-visible:ptw-border-primary-500 ptw-h-[51px] ptw-opacity-30"
8
8
  >
9
9
  <Icon
10
10
  icon="carbon:search"
11
- class="flex-none htw-w-4 htw-h-4"
11
+ class="flex-none ptw-w-4 ptw-h-4"
12
12
  />
13
13
 
14
14
  Loading...
@@ -27,14 +27,14 @@ function close() {
27
27
  <template>
28
28
  <div
29
29
  v-show="shown"
30
- class="poveste-search-modal htw-fixed htw-inset-0 htw-bg-white/80 dark:htw-bg-gray-900/80 htw-z-20"
30
+ class="poveste-search-modal ptw-fixed ptw-inset-0 ptw-bg-white/80 dark:ptw-bg-gray-900/80 ptw-z-20"
31
31
  data-test-id="search-modal"
32
32
  >
33
33
  <div
34
- class="htw-absolute htw-inset-0"
34
+ class="ptw-absolute ptw-inset-0"
35
35
  @click="close()"
36
36
  />
37
- <div class="htw-bg-white dark:htw-bg-gray-900 md:htw-mt-16 md:htw-mx-auto htw-w-screen htw-max-w-[512px] htw-shadow-xl htw-border htw-border-gray-200 dark:htw-border-gray-750 htw-rounded-lg htw-relative htw-divide-y htw-divide-gray-200 dark:htw-divide-gray-850">
37
+ <div class="ptw-bg-white dark:ptw-bg-gray-900 md:ptw-mt-16 md:ptw-mx-auto ptw-w-screen ptw-max-w-[512px] ptw-shadow-xl ptw-border ptw-border-gray-200 dark:ptw-border-gray-750 ptw-rounded-lg ptw-relative ptw-divide-y ptw-divide-gray-200 dark:ptw-divide-gray-850">
38
38
  <SearchPane
39
39
  :shown="shown"
40
40
  @close="close()"