@indielayer/ui 0.0.0-dev-20240129122517 → 0.0.0-dev-20240202140555

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 (192) hide show
  1. package/docs/App.vue +25 -0
  2. package/docs/assets/css/hljs.css +302 -0
  3. package/docs/assets/css/tailwind.css +46 -0
  4. package/docs/assets/images/error.svg +1 -0
  5. package/docs/assets/images/logo.png +0 -0
  6. package/docs/assets/images/logo_mini.svg +10 -0
  7. package/docs/assets/images/logo_white.png +0 -0
  8. package/docs/assets/images/logo_word.svg +12 -0
  9. package/docs/assets/images/logo_word_dark.svg +12 -0
  10. package/docs/assets/images/photo1.jpeg +0 -0
  11. package/docs/assets/images/photo2.jpeg +0 -0
  12. package/docs/components/Cookies.vue +42 -0
  13. package/docs/components/common/CodePreview.vue +80 -0
  14. package/docs/components/common/CodeSnippet.vue +49 -0
  15. package/docs/components/common/CopyButton.vue +50 -0
  16. package/docs/components/common/DocumentPage.vue +289 -0
  17. package/docs/components/common/Indielayer-theme.json +702 -0
  18. package/docs/components/common/MultiSnippet.vue +26 -0
  19. package/docs/components/menu/DocsMenu.vue +143 -0
  20. package/docs/components/toolbar/PreToolbar.vue +18 -0
  21. package/docs/components/toolbar/Toolbar.vue +63 -0
  22. package/docs/components/toolbar/ToolbarColorToggle.vue +49 -0
  23. package/docs/icons.ts +61 -0
  24. package/docs/layouts/default.vue +29 -0
  25. package/docs/layouts/simple.vue +3 -0
  26. package/docs/main.ts +33 -0
  27. package/docs/pages/colors.vue +125 -0
  28. package/docs/pages/component/accordion/index.vue +29 -0
  29. package/docs/pages/component/accordion/usage.vue +30 -0
  30. package/docs/pages/component/alert/index.vue +29 -0
  31. package/docs/pages/component/alert/usage.vue +18 -0
  32. package/docs/pages/component/avatar/index.vue +43 -0
  33. package/docs/pages/component/avatar/size.vue +9 -0
  34. package/docs/pages/component/avatar/usage.vue +9 -0
  35. package/docs/pages/component/avatar/variants.vue +8 -0
  36. package/docs/pages/component/badge/index.vue +29 -0
  37. package/docs/pages/component/badge/usage.vue +50 -0
  38. package/docs/pages/component/breadcrumbs/index.vue +29 -0
  39. package/docs/pages/component/breadcrumbs/usage.vue +19 -0
  40. package/docs/pages/component/button/button-group.vue +18 -0
  41. package/docs/pages/component/button/icons.vue +9 -0
  42. package/docs/pages/component/button/index.vue +64 -0
  43. package/docs/pages/component/button/size.vue +9 -0
  44. package/docs/pages/component/button/states.vue +6 -0
  45. package/docs/pages/component/button/usage.vue +12 -0
  46. package/docs/pages/component/button/variants.vue +7 -0
  47. package/docs/pages/component/card/index.vue +29 -0
  48. package/docs/pages/component/card/usage.vue +6 -0
  49. package/docs/pages/component/carousel/index.vue +29 -0
  50. package/docs/pages/component/carousel/usage.vue +10 -0
  51. package/docs/pages/component/checkbox/index.vue +50 -0
  52. package/docs/pages/component/checkbox/size.vue +9 -0
  53. package/docs/pages/component/checkbox/states.vue +9 -0
  54. package/docs/pages/component/checkbox/usage.vue +15 -0
  55. package/docs/pages/component/checkbox/variants.vue +8 -0
  56. package/docs/pages/component/container/index.vue +29 -0
  57. package/docs/pages/component/container/usage.vue +3 -0
  58. package/docs/pages/component/divider/index.vue +43 -0
  59. package/docs/pages/component/divider/label.vue +12 -0
  60. package/docs/pages/component/divider/usage.vue +7 -0
  61. package/docs/pages/component/divider/vertical.vue +7 -0
  62. package/docs/pages/component/drawer/index.vue +29 -0
  63. package/docs/pages/component/drawer/usage.vue +56 -0
  64. package/docs/pages/component/form/index.vue +29 -0
  65. package/docs/pages/component/form/usage.vue +96 -0
  66. package/docs/pages/component/formGroup/index.vue +29 -0
  67. package/docs/pages/component/formGroup/usage.vue +46 -0
  68. package/docs/pages/component/icon/index.vue +36 -0
  69. package/docs/pages/component/icon/usage.vue +6 -0
  70. package/docs/pages/component/icon/variants.vue +14 -0
  71. package/docs/pages/component/image/index.vue +29 -0
  72. package/docs/pages/component/image/usage.vue +8 -0
  73. package/docs/pages/component/input/index.vue +50 -0
  74. package/docs/pages/component/input/size.vue +13 -0
  75. package/docs/pages/component/input/states.vue +12 -0
  76. package/docs/pages/component/input/usage.vue +15 -0
  77. package/docs/pages/component/input/variants.vue +18 -0
  78. package/docs/pages/component/link/index.vue +29 -0
  79. package/docs/pages/component/link/usage.vue +12 -0
  80. package/docs/pages/component/loader/index.vue +29 -0
  81. package/docs/pages/component/loader/usage.vue +7 -0
  82. package/docs/pages/component/menu/index.vue +29 -0
  83. package/docs/pages/component/menu/usage.vue +69 -0
  84. package/docs/pages/component/modal/composed.vue +70 -0
  85. package/docs/pages/component/modal/index.vue +36 -0
  86. package/docs/pages/component/modal/usage.vue +61 -0
  87. package/docs/pages/component/notifications/index.vue +29 -0
  88. package/docs/pages/component/notifications/usage.vue +56 -0
  89. package/docs/pages/component/pagination/index.vue +29 -0
  90. package/docs/pages/component/pagination/usage.vue +17 -0
  91. package/docs/pages/component/popover/index.vue +29 -0
  92. package/docs/pages/component/popover/usage.vue +21 -0
  93. package/docs/pages/component/progress/index.vue +36 -0
  94. package/docs/pages/component/progress/usage.vue +7 -0
  95. package/docs/pages/component/progress/variants.vue +18 -0
  96. package/docs/pages/component/radio/index.vue +50 -0
  97. package/docs/pages/component/radio/size.vue +15 -0
  98. package/docs/pages/component/radio/states.vue +13 -0
  99. package/docs/pages/component/radio/usage.vue +14 -0
  100. package/docs/pages/component/radio/variants.vue +39 -0
  101. package/docs/pages/component/scroll/horizontal.vue +14 -0
  102. package/docs/pages/component/scroll/index.vue +36 -0
  103. package/docs/pages/component/scroll/usage.vue +5 -0
  104. package/docs/pages/component/select/index.vue +43 -0
  105. package/docs/pages/component/select/states.vue +22 -0
  106. package/docs/pages/component/select/usage.vue +45 -0
  107. package/docs/pages/component/select/variants.vue +23 -0
  108. package/docs/pages/component/skeleton/index.vue +29 -0
  109. package/docs/pages/component/skeleton/usage.vue +10 -0
  110. package/docs/pages/component/slider/index.vue +29 -0
  111. package/docs/pages/component/slider/usage.vue +15 -0
  112. package/docs/pages/component/spacer/index.vue +29 -0
  113. package/docs/pages/component/spacer/usage.vue +8 -0
  114. package/docs/pages/component/spinner/index.vue +36 -0
  115. package/docs/pages/component/spinner/usage.vue +3 -0
  116. package/docs/pages/component/spinner/variants.vue +9 -0
  117. package/docs/pages/component/stepper/index.vue +29 -0
  118. package/docs/pages/component/stepper/usage.vue +21 -0
  119. package/docs/pages/component/table/index.vue +36 -0
  120. package/docs/pages/component/table/states.vue +28 -0
  121. package/docs/pages/component/table/usage.vue +107 -0
  122. package/docs/pages/component/tabs/index.vue +29 -0
  123. package/docs/pages/component/tabs/usage.vue +137 -0
  124. package/docs/pages/component/tag/index.vue +29 -0
  125. package/docs/pages/component/tag/usage.vue +27 -0
  126. package/docs/pages/component/textarea/index.vue +43 -0
  127. package/docs/pages/component/textarea/states.vue +13 -0
  128. package/docs/pages/component/textarea/usage.vue +22 -0
  129. package/docs/pages/component/textarea/variants.vue +15 -0
  130. package/docs/pages/component/toggle/index.vue +43 -0
  131. package/docs/pages/component/toggle/states.vue +13 -0
  132. package/docs/pages/component/toggle/usage.vue +14 -0
  133. package/docs/pages/component/toggle/variants.vue +15 -0
  134. package/docs/pages/component/tooltip/index.vue +29 -0
  135. package/docs/pages/component/tooltip/usage.vue +16 -0
  136. package/docs/pages/error.vue +6 -0
  137. package/docs/pages/icons.vue +105 -0
  138. package/docs/pages/index.vue +157 -0
  139. package/docs/pages/play.vue +19 -0
  140. package/docs/pages/typography.vue +95 -0
  141. package/docs/router/index.ts +77 -0
  142. package/lib/components/accordion/Accordion.vue.d.ts +3 -0
  143. package/lib/components/accordion/Accordion.vue.js +7 -7
  144. package/lib/components/accordion/AccordionItem.vue.d.ts +1 -0
  145. package/lib/components/accordion/AccordionItem.vue.js +49 -47
  146. package/lib/components/accordion/index.d.ts +1 -1
  147. package/lib/components/accordion/theme/Accordion.carbon.theme.js +3 -6
  148. package/lib/components/accordion/theme/AccordionItem.base.theme.js +9 -9
  149. package/lib/components/accordion/theme/AccordionItem.carbon.theme.js +3 -14
  150. package/lib/components/carousel/CarouselSlide.vue.d.ts +19 -8
  151. package/lib/components/carousel/CarouselSlide.vue.js +2 -2
  152. package/lib/components/carousel/CarouselSlide.vue2.js +25 -18
  153. package/lib/components/checkbox/theme/Checkbox.base.theme.js +4 -4
  154. package/lib/components/container/Container.vue.d.ts +13 -0
  155. package/lib/components/container/Container.vue.js +15 -11
  156. package/lib/components/container/theme/Container.base.theme.js +7 -4
  157. package/lib/components/form/theme/Form.base.theme.js +1 -1
  158. package/lib/components/menu/Menu.vue.js +10 -10
  159. package/lib/components/menu/theme/MenuItem.base.theme.js +1 -1
  160. package/lib/components/modal/Modal.vue.d.ts +1 -1
  161. package/lib/components/radio/theme/Radio.base.theme.js +6 -6
  162. package/lib/components/select/Select.vue.js +47 -50
  163. package/lib/components/slider/theme/Slider.carbon.theme.js +4 -4
  164. package/lib/components/tab/Tab.vue.js +54 -53
  165. package/lib/components/tab/theme/TabGroup.carbon.theme.js +3 -3
  166. package/lib/composables/keys.d.ts +2 -2
  167. package/lib/index.js +1 -1
  168. package/lib/index.umd.js +3 -3
  169. package/lib/version.d.ts +1 -1
  170. package/lib/version.js +1 -1
  171. package/package.json +4 -2
  172. package/src/components/accordion/Accordion.vue +5 -1
  173. package/src/components/accordion/AccordionItem.vue +5 -2
  174. package/src/components/accordion/index.ts +1 -1
  175. package/src/components/accordion/theme/Accordion.carbon.theme.ts +3 -5
  176. package/src/components/accordion/theme/AccordionItem.base.theme.ts +10 -7
  177. package/src/components/accordion/theme/AccordionItem.carbon.theme.ts +2 -30
  178. package/src/components/carousel/CarouselSlide.vue +9 -4
  179. package/src/components/checkbox/theme/Checkbox.base.theme.ts +1 -1
  180. package/src/components/container/Container.vue +4 -0
  181. package/src/components/container/theme/Container.base.theme.ts +7 -1
  182. package/src/components/form/theme/Form.base.theme.ts +1 -1
  183. package/src/components/label/theme/Label.carbon.theme.ts +0 -2
  184. package/src/components/menu/Menu.vue +1 -1
  185. package/src/components/menu/theme/MenuItem.base.theme.ts +1 -1
  186. package/src/components/radio/theme/Radio.base.theme.ts +1 -1
  187. package/src/components/select/Select.vue +0 -3
  188. package/src/components/slider/theme/Slider.carbon.theme.ts +1 -1
  189. package/src/components/tab/Tab.vue +1 -1
  190. package/src/components/tab/theme/TabGroup.carbon.theme.ts +1 -1
  191. package/src/composables/keys.ts +2 -2
  192. package/src/version.ts +1 -1
@@ -0,0 +1,137 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue'
3
+
4
+ const tab = ref('a')
5
+ const linkTab = ref(null)
6
+ </script>
7
+
8
+ <template>
9
+ <x-tab-group v-model="tab" class="pb-10" variant="line" :full-width="false">
10
+ <x-tab value="a" label="Tab A" icon="smile">
11
+ content a
12
+ </x-tab>
13
+ <x-tab value="b" label="Tab B">
14
+ content b
15
+ </x-tab>
16
+ <x-tab value="c" label="Tab c">
17
+ content c
18
+ </x-tab>
19
+ <x-tab value="d" label="Tab d">
20
+ content d
21
+ </x-tab>
22
+ <x-tab value="e" label="Tab e">
23
+ content e
24
+ </x-tab>
25
+ </x-tab-group>
26
+ <x-tab-group
27
+ v-model="tab"
28
+ class="pb-10"
29
+ variant="line"
30
+ grow
31
+ >
32
+ <x-tab value="a" label="Tab A">
33
+ content a
34
+ </x-tab>
35
+ <x-tab value="b" label="Tab B">
36
+ content b
37
+ </x-tab>
38
+ <x-tab value="c" label="Tab c">
39
+ content c
40
+ </x-tab>
41
+ <x-tab value="d" label="Tab d">
42
+ content d
43
+ </x-tab>
44
+ <x-tab value="e" label="Tab e">
45
+ content e
46
+ </x-tab>
47
+ </x-tab-group>
48
+ <x-tab-group v-model="tab" class="pb-10" variant="line" ghost>
49
+ <x-tab value="a" label="Tab A">
50
+ content a
51
+ </x-tab>
52
+ <x-tab value="b" label="Tab B">
53
+ content b
54
+ </x-tab>
55
+ <x-tab value="c" label="Tab c">
56
+ content c
57
+ </x-tab>
58
+ <x-tab value="d" label="Tab d">
59
+ content d
60
+ </x-tab>
61
+ <x-tab value="e" label="Tab e">
62
+ content e
63
+ </x-tab>
64
+ </x-tab-group>
65
+ <x-tab-group v-model="tab" class="pb-10" variant="block" grow>
66
+ <x-tab value="a" label="Tab A">
67
+ content a
68
+ </x-tab>
69
+ <x-tab value="b" label="Tab B">
70
+ content b
71
+ </x-tab>
72
+ <x-tab value="c" label="Tab c">
73
+ content c
74
+ </x-tab>
75
+ <x-tab value="d" label="Tab d">
76
+ content d
77
+ </x-tab>
78
+ <x-tab value="e" label="Tab e">
79
+ content e
80
+ </x-tab>
81
+ </x-tab-group>
82
+ <x-tab-group
83
+ v-model="tab"
84
+ class="pb-10"
85
+ variant="block"
86
+ grow
87
+ :full-width="false"
88
+ >
89
+ <x-tab value="a" label="Tab A" removable>
90
+ content a
91
+ </x-tab>
92
+ <x-tab value="b" label="Tab B" icon="smile">
93
+ content b
94
+ </x-tab>
95
+ <x-tab value="c" label="Tab c">
96
+ content c
97
+ </x-tab>
98
+ <x-tab value="d" label="Tab d">
99
+ content d
100
+ </x-tab>
101
+ <x-tab value="e" label="Tab e">
102
+ content e
103
+ </x-tab>
104
+ </x-tab-group>
105
+ <x-tab-group
106
+ v-model="tab"
107
+ class="pb-10"
108
+ variant="block"
109
+ ghost
110
+ >
111
+ <x-tab value="a" label="Tab A">
112
+ content a
113
+ </x-tab>
114
+ <x-tab value="b" label="Tab B">
115
+ content b
116
+ </x-tab>
117
+ <x-tab value="c" label="Tab c">
118
+ content c
119
+ </x-tab>
120
+ <x-tab value="d" label="Tab d">
121
+ content d
122
+ </x-tab>
123
+ <x-tab value="e" label="Tab e">
124
+ content e
125
+ </x-tab>
126
+ </x-tab-group>
127
+
128
+ <p>Automatic link as value</p>
129
+ <x-tab-group v-model="linkTab" class="pb-10" exact>
130
+ <x-tab to="/component/tabs" label="Tabs link">
131
+ content a
132
+ </x-tab>
133
+ <x-tab to="/component/slider" label="Tabs link B">
134
+ content b
135
+ </x-tab>
136
+ </x-tab-group>
137
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XTag } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Tag'
7
+ const description = 'Tags are used to display a label.'
8
+ const components = [XTag]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'tabs'
16
+ const next = 'tooltip'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/tag"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div class="space-x-2">
3
+ <x-tag color="primary">Hello</x-tag>
4
+ <x-tag color="amber">Amber</x-tag>
5
+ <x-tag outlined>I'm a tag</x-tag>
6
+ <x-tag rounded outlined color="pink">I'm a tag</x-tag>
7
+ <x-tag color="pink">I'm a tag</x-tag>
8
+ <x-tag removable @remove="notifications.log('remove me')">I'm a tag</x-tag>
9
+ <x-tag removable size="xs" @remove="notifications.log('remove me')">I'm a tag</x-tag>
10
+ <x-tag removable size="lg" @remove="notifications.log('remove me')">I'm a tag</x-tag>
11
+ <x-tag removable size="xl" @remove="notifications.log('remove me')">I'm a tag</x-tag>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+ import { useNotifications } from '@indielayer/ui'
17
+
18
+ export default {
19
+ setup() {
20
+ const notifications = useNotifications('notifica')
21
+
22
+ return {
23
+ notifications,
24
+ }
25
+ },
26
+ }
27
+ </script>
@@ -0,0 +1,43 @@
1
+ <script setup lang="ts">
2
+ import { XTextarea } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+ import VariantsDemoCode from './variants.vue?raw'
6
+ import VariantsDemo from './variants.vue'
7
+ import StatesDemoCode from './states.vue?raw'
8
+ import StatesDemo from './states.vue'
9
+
10
+ const title = 'Textarea'
11
+ const description = 'Textareas allow the user to enter text.'
12
+ const components = [XTextarea]
13
+ const demos = [{
14
+ name: 'Usage',
15
+ description: '',
16
+ code: UsageDemoCode,
17
+ component: UsageDemo,
18
+ }, {
19
+ name: 'Variants',
20
+ description: '',
21
+ code: VariantsDemoCode,
22
+ component: VariantsDemo,
23
+ }, {
24
+ name: 'States',
25
+ description: '',
26
+ code: StatesDemoCode,
27
+ component: StatesDemo,
28
+ }]
29
+ const back = 'slider'
30
+ const next = 'toggle'
31
+ </script>
32
+
33
+ <template>
34
+ <document-page
35
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/textarea"
36
+ :title="title"
37
+ :description="description"
38
+ :components="components"
39
+ :demos="demos"
40
+ :back="back"
41
+ :next="next"
42
+ />
43
+ </template>
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <div class="grid grid-cols-4 gap-4">
3
+ <x-textarea v-model="name" disabled label="Disabled"/>
4
+ <x-textarea v-model="name" readonly label="Read only"/>
5
+ <x-textarea v-model="name" label="Error" error="Invalid input" />
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ export default {
11
+ data() { return { name: 'disabled' } },
12
+ }
13
+ </script>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div class="grid grid-cols-4 gap-4">
3
+ <x-textarea
4
+ v-model="name"
5
+ label="Normal textarea"
6
+ helper="Helper text"
7
+ placeholder="Placeholder"
8
+ />
9
+ <x-textarea v-model="multiline" label="Multiline adjust" adjust-to-text />
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ data() {
16
+ return {
17
+ name: '',
18
+ multiline: 'auto\nadjusted\nheight',
19
+ }
20
+ },
21
+ }
22
+ </script>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="grid grid-cols-3 gap-4">
3
+ <x-textarea v-model="sizes" label="xs" size="xs" />
4
+ <x-textarea v-model="sizes" label="xs" size="sm" />
5
+ <x-textarea v-model="sizes" label="md" />
6
+ <x-textarea v-model="sizes" label="lg" size="lg" />
7
+ <x-textarea v-model="sizes" label="xl" size="xl" />
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ data() { return { sizes: 'Text size' } },
14
+ }
15
+ </script>
@@ -0,0 +1,43 @@
1
+ <script setup lang="ts">
2
+ import { XToggle } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+ import VariantsDemoCode from './variants.vue?raw'
6
+ import VariantsDemo from './variants.vue'
7
+ import StatesDemoCode from './states.vue?raw'
8
+ import StatesDemo from './states.vue'
9
+
10
+ const title = 'Toggle'
11
+ const description = 'Toggles are used to switch between two states.'
12
+ const components = [XToggle]
13
+ const demos = [{
14
+ name: 'Usage',
15
+ description: '',
16
+ code: UsageDemoCode,
17
+ component: UsageDemo,
18
+ }, {
19
+ name: 'Variants',
20
+ description: '',
21
+ code: VariantsDemoCode,
22
+ component: VariantsDemo,
23
+ }, {
24
+ name: 'States',
25
+ description: '',
26
+ code: StatesDemoCode,
27
+ component: StatesDemo,
28
+ }]
29
+ const back = 'textarea'
30
+ const next = 'accordion'
31
+ </script>
32
+
33
+ <template>
34
+ <document-page
35
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/toggle"
36
+ :title="title"
37
+ :description="description"
38
+ :components="components"
39
+ :demos="demos"
40
+ :back="back"
41
+ :next="next"
42
+ />
43
+ </template>
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <div class="grid grid-cols-4 gap-4">
3
+ <x-toggle disabled label="Disabled" />
4
+ <x-toggle v-model="checked" loading label="Loading" color="blue"/>
5
+ <x-toggle error="Invalid input" label="Error"/>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ export default {
11
+ data() { return { checked: true } },
12
+ }
13
+ </script>
@@ -0,0 +1,14 @@
1
+ <template>
2
+ <div class="grid grid-cols-4 gap-4">
3
+ <x-toggle v-model="checked" color="primary" label="Primary" />
4
+ <x-toggle v-model="checked" color="secondary" label="Secondary" />
5
+ <x-toggle v-model="checked" color="success" label="Success" />
6
+ <x-toggle v-model="checked" color="warning" label="Warning" />
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ data() { return { checked: true } },
13
+ }
14
+ </script>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="flex items-center space-x-4">
3
+ <x-toggle v-model="checked" size="xs" label="xs"/>
4
+ <x-toggle v-model="checked" size="sm" label="sm"/>
5
+ <x-toggle v-model="checked" label="md"/>
6
+ <x-toggle v-model="checked" size="lg" label="lg"/>
7
+ <x-toggle v-model="checked" size="xl" label="xl"/>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ data() { return { checked: false } },
14
+ }
15
+ </script>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XTooltip } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Tooltip'
7
+ const description = 'Tooltips are used to display a message when hovering over an element.'
8
+ const components = [XTooltip]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'tag'
16
+ const next = ''
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/tooltip"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,16 @@
1
+ <template>
2
+ <x-tooltip>
3
+ <x-button>Hover me to see tooltip</x-button>
4
+ <template #tooltip>
5
+ Cool <span class="text-gray-300">Tooltip</span>
6
+ </template>
7
+ </x-tooltip>
8
+
9
+ <x-tooltip>
10
+ <x-button>Hover me to see tooltip</x-button>
11
+ <template #tooltip>
12
+ <div class="font-bold">Tooltip title</div>
13
+ <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus corrupti maiores aut minima iusto nulla inventore ea illo commodi et.</div>
14
+ </template>
15
+ </x-tooltip>
16
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <div class="text-center px-8 py-20">
3
+ <img class="mb-5 mx-auto max-w-80 max-h-80" src="../assets/images/error.svg" />
4
+ <h2 class="text-h3">Page not found</h2>
5
+ </div>
6
+ </template>
@@ -0,0 +1,105 @@
1
+ <template>
2
+ <div>
3
+ <section class="p-4 lg:p-8 max-w-4xl xl:max-w-7xl mx-auto">
4
+ <h2 class="text-4xl font-semibold">Icons</h2>
5
+ <h1 class="text-lg my-2 text-gray-500 dark:text-gray-400">Building your own SVG icon library from multiple open source libraries</h1>
6
+ <x-divider class="mt-4 mb-8"/>
7
+
8
+ <p class="text-xl mt-8 my-4">SVG Icon Libraries</p>
9
+ <div class="font-bold text-lg">
10
+ <ul>
11
+ <li><x-link
12
+ external
13
+ color="sky"
14
+ underline
15
+ href="https://icones.js.org/"
16
+ target="_blank"
17
+ >Icônes - All the libraries</x-link></li>
18
+ <li><x-link
19
+ external
20
+ color="sky"
21
+ underline
22
+ href="https://heroicons.com/"
23
+ target="_blank"
24
+ >Hero Icons (MIT)</x-link></li>
25
+ <li><x-link
26
+ external
27
+ color="sky"
28
+ underline
29
+ href="https://tabler-icons.io/"
30
+ target="_blank"
31
+ >Tabler Icons (MIT)</x-link></li>
32
+ <li><x-link
33
+ external
34
+ color="sky"
35
+ underline
36
+ href="https://feathericons.com/"
37
+ target="_blank"
38
+ >Feather Icons (MIT)</x-link></li>
39
+ </ul>
40
+ </div>
41
+
42
+ <h3 class="text-2xl mt-8 mb-4">1. Create the icons file -> <strong>icons.js</strong></h3>
43
+ <code-snippet
44
+ lang="js"
45
+ :code="iconExample"
46
+ />
47
+
48
+ <h3 class="text-2xl mt-8 mb-4">2. Add icons on UI install options -> <strong>main.js</strong></h3>
49
+ <code-snippet
50
+ lang="js"
51
+ :code="installExample"
52
+ />
53
+
54
+ <h3 class="text-2xl mt-8 mb-4">3. Add icons from open source libraries</h3>
55
+ <p class="mb-2 text-xl">Start adding the icons you need.</p>
56
+ <p class="mb-2">SVG wrapper optional, copy only the content part of the SVG:</p>
57
+ <p class="mb-4 border dark:border-gray-600 rounded-md p-4">&#x3C;svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; width=&#x22;24&#x22; height=&#x22;24&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22; stroke=&#x22;currentColor&#x22; stroke-width=&#x22;2&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; class=&#x22;feather feather-check&#x22;&#x3E;<strong>&#x3C;polyline points=&#x22;20 6 9 17 4 12&#x22;&#x3E;&#x3C;/polyline&#x3E;</strong>&#x3C;/svg&#x3E;</p>
58
+ <code-snippet lang="js" :code="iconExample1"/>
59
+
60
+ <div class="my-4">
61
+ Icon "check" <x-icon icon="check"/>
62
+ </div>
63
+ <code-snippet lang="js" :code="iconExample2"/>
64
+ </section>
65
+ </div>
66
+ </template>
67
+
68
+ <script>
69
+ export default {
70
+ data() {
71
+ return {
72
+ iconExample: `// icons.js
73
+ export default {
74
+ check: '<polyline points="20 6 9 17 4 12"></polyline>'
75
+ }`,
76
+ installExample: `// main.js
77
+ import { createApp } from 'vue'
78
+ import UI from '@indielayer/ui'
79
+ import icons from './icons'
80
+
81
+ const app = createApp(App)
82
+
83
+ app.use(UI, {
84
+ icons,
85
+ })`,
86
+ iconExample1: `// icons.js
87
+ export default {
88
+ check: '<polyline points="20 6 9 17 4 12"></polyline>',
89
+ // or
90
+ check2: {
91
+ icon: '<polyline points="20 6 9 17 4 12"></polyline>',
92
+ viewBox: '0 0 24 24', // default
93
+ filled: false, // default
94
+ },
95
+ // or
96
+ check3: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg>'
97
+ }`,
98
+ iconExample2: `<template>
99
+ <x-icon icon="check" />
100
+ </template>
101
+ `,
102
+ }
103
+ },
104
+ }
105
+ </script>