@nanoporetech-digital/components 4.9.4 → 5.0.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 (240) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/cjs/drag-777bd8dd.js +74 -0
  3. package/dist/cjs/drag-777bd8dd.js.map +1 -0
  4. package/dist/cjs/{form-control-2e900f54.js → form-control-443e90bf.js} +2 -3
  5. package/dist/cjs/form-control-443e90bf.js.map +1 -0
  6. package/dist/cjs/index-71f899a7.js +10 -2
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/nano-components.cjs.js +1 -1
  9. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +6 -6
  10. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nano-grid-item.cjs.entry.js +29 -0
  12. package/dist/cjs/nano-grid-item.cjs.entry.js.map +1 -0
  13. package/dist/cjs/nano-grid_2.cjs.entry.js +436 -0
  14. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -0
  15. package/dist/cjs/nano-hero.cjs.entry.js +4 -10
  16. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-icon-button_2.cjs.entry.js +40 -3
  18. package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nano-input.cjs.entry.js +2 -2
  20. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nano-range.cjs.entry.js +1 -1
  22. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nano-sortable.cjs.entry.js +654 -0
  24. package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -0
  25. package/dist/cjs/nano-split-pane.cjs.entry.js +30 -45
  26. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-tab-group.cjs.entry.js +39 -43
  28. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-tab.cjs.entry.js +3 -3
  30. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  31. package/dist/cjs/{nano-table-54a4ba34.js → nano-table-11052a34.js} +52 -172
  32. package/dist/cjs/nano-table-11052a34.js.map +1 -0
  33. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  34. package/dist/cjs/{table.worker-20ed37a5.js → table.worker-83433a8b.js} +3 -3
  35. package/dist/cjs/table.worker-83433a8b.js.map +1 -0
  36. package/dist/cjs/{table.worker-f820b411.js → table.worker-bd51e29f.js} +1 -1
  37. package/dist/collection/collection-manifest.json +1 -0
  38. package/dist/collection/components/form-control/form-control.js +1 -2
  39. package/dist/collection/components/form-control/form-control.js.map +1 -1
  40. package/dist/collection/components/grid/grid-item.js +11 -136
  41. package/dist/collection/components/grid/grid-item.js.map +1 -1
  42. package/dist/collection/components/grid/grid.css +9 -242
  43. package/dist/collection/components/grid/grid.js +248 -240
  44. package/dist/collection/components/grid/grid.js.map +1 -1
  45. package/dist/collection/components/hero/hero.css +42 -89
  46. package/dist/collection/components/hero/hero.js +4 -11
  47. package/dist/collection/components/hero/hero.js.map +1 -1
  48. package/dist/collection/components/icon-button/icon-button.css +18 -4
  49. package/dist/collection/components/icon-button/icon-button.js +83 -4
  50. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  51. package/dist/collection/components/input/input.css +8 -9
  52. package/dist/collection/components/nav-item/nav-item.js +4 -4
  53. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  54. package/dist/collection/components/range/range.css +0 -3
  55. package/dist/collection/components/select/select.css +8 -9
  56. package/dist/collection/components/sortable/sortable.css +28 -0
  57. package/dist/collection/components/sortable/sortable.js +1181 -0
  58. package/dist/collection/components/sortable/sortable.js.map +1 -0
  59. package/dist/collection/components/split-pane/split-pane.js +29 -27
  60. package/dist/collection/components/split-pane/split-pane.js.map +1 -1
  61. package/dist/collection/components/table/table-interface.js.map +1 -1
  62. package/dist/collection/components/table/table.css +18 -38
  63. package/dist/collection/components/table/table.header.js +3 -86
  64. package/dist/collection/components/table/table.header.js.map +1 -1
  65. package/dist/collection/components/table/table.js +27 -108
  66. package/dist/collection/components/table/table.js.map +1 -1
  67. package/dist/collection/components/table/table.row.js +7 -7
  68. package/dist/collection/components/table/table.row.js.map +1 -1
  69. package/dist/collection/components/table/table.store.js +1 -1
  70. package/dist/collection/components/table/table.store.js.map +1 -1
  71. package/dist/collection/components/table/table.worker.js +3 -3
  72. package/dist/collection/components/table/table.worker.js.map +1 -1
  73. package/dist/collection/components/tabs/tab-group.css +9 -13
  74. package/dist/collection/components/tabs/tab-group.js +39 -43
  75. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  76. package/dist/collection/components/tabs/tab.css +53 -14
  77. package/dist/collection/components/tabs/tab.js +8 -2
  78. package/dist/collection/components/tabs/tab.js.map +1 -1
  79. package/dist/collection/utils/constructible-style.js +129 -0
  80. package/dist/collection/utils/constructible-style.js.map +1 -0
  81. package/dist/collection/utils/drag.js +52 -4
  82. package/dist/collection/utils/drag.js.map +1 -1
  83. package/dist/components/drag.js +72 -0
  84. package/dist/components/drag.js.map +1 -0
  85. package/dist/components/form-control.js +1 -2
  86. package/dist/components/form-control.js.map +1 -1
  87. package/dist/components/grid.js +268 -183
  88. package/dist/components/grid.js.map +1 -1
  89. package/dist/components/icon-button.js +45 -5
  90. package/dist/components/icon-button.js.map +1 -1
  91. package/dist/components/index.d.ts +1 -0
  92. package/dist/components/index.js +1 -0
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/input.js +1 -1
  95. package/dist/components/input.js.map +1 -1
  96. package/dist/components/nano-grid-item.js +33 -1
  97. package/dist/components/nano-grid-item.js.map +1 -1
  98. package/dist/components/nano-hero.js +6 -19
  99. package/dist/components/nano-hero.js.map +1 -1
  100. package/dist/components/nano-range.js +1 -1
  101. package/dist/components/nano-range.js.map +1 -1
  102. package/dist/components/nano-sortable.d.ts +11 -0
  103. package/dist/components/nano-sortable.js +692 -0
  104. package/dist/components/nano-sortable.js.map +1 -0
  105. package/dist/components/nano-split-pane.js +30 -45
  106. package/dist/components/nano-split-pane.js.map +1 -1
  107. package/dist/components/nano-tab-group.js +40 -44
  108. package/dist/components/nano-tab-group.js.map +1 -1
  109. package/dist/components/nano-tab.js +3 -3
  110. package/dist/components/nano-tab.js.map +1 -1
  111. package/dist/components/nav-item.js +4 -4
  112. package/dist/components/nav-item.js.map +1 -1
  113. package/dist/components/select.js +1 -1
  114. package/dist/components/select.js.map +1 -1
  115. package/dist/components/table.js +52 -173
  116. package/dist/components/table.js.map +1 -1
  117. package/dist/components/table.worker.js +1 -1
  118. package/dist/esm/drag-1723a4cc.js +72 -0
  119. package/dist/esm/drag-1723a4cc.js.map +1 -0
  120. package/dist/esm/{form-control-269ba84f.js → form-control-e8739b2e.js} +2 -3
  121. package/dist/esm/form-control-e8739b2e.js.map +1 -0
  122. package/dist/esm/index-dad5627b.js +10 -2
  123. package/dist/esm/loader.js +1 -1
  124. package/dist/esm/nano-components.js +1 -1
  125. package/dist/esm/nano-global-nav-user-profile_3.entry.js +6 -6
  126. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  127. package/dist/esm/nano-grid-item.entry.js +25 -0
  128. package/dist/esm/nano-grid-item.entry.js.map +1 -0
  129. package/dist/esm/nano-grid_2.entry.js +431 -0
  130. package/dist/esm/nano-grid_2.entry.js.map +1 -0
  131. package/dist/esm/nano-hero.entry.js +4 -10
  132. package/dist/esm/nano-hero.entry.js.map +1 -1
  133. package/dist/esm/nano-icon-button_2.entry.js +41 -4
  134. package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
  135. package/dist/esm/nano-input.entry.js +2 -2
  136. package/dist/esm/nano-input.entry.js.map +1 -1
  137. package/dist/esm/nano-range.entry.js +1 -1
  138. package/dist/esm/nano-range.entry.js.map +1 -1
  139. package/dist/esm/nano-sortable.entry.js +650 -0
  140. package/dist/esm/nano-sortable.entry.js.map +1 -0
  141. package/dist/esm/nano-split-pane.entry.js +30 -45
  142. package/dist/esm/nano-split-pane.entry.js.map +1 -1
  143. package/dist/esm/nano-tab-group.entry.js +39 -43
  144. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  145. package/dist/esm/nano-tab.entry.js +3 -3
  146. package/dist/esm/nano-tab.entry.js.map +1 -1
  147. package/dist/esm/{nano-table-929ac4d9.js → nano-table-ba637f26.js} +53 -173
  148. package/dist/esm/nano-table-ba637f26.js.map +1 -0
  149. package/dist/esm/nano-table.entry.js +1 -1
  150. package/dist/esm/{table.worker-2425382a.js → table.worker-1cae39c9.js} +3 -3
  151. package/dist/esm/table.worker-1cae39c9.js.map +1 -0
  152. package/dist/{nano-components/p-f820b411.js → esm/table.worker-bd51e29f.js} +1 -1
  153. package/dist/nano-components/nano-components.css +1 -1
  154. package/dist/nano-components/nano-components.esm.js +1 -1
  155. package/dist/nano-components/nano-components.esm.js.map +1 -1
  156. package/dist/nano-components/p-00cf8021.entry.js +5 -0
  157. package/dist/nano-components/p-00cf8021.entry.js.map +1 -0
  158. package/dist/nano-components/{p-906de5a2.entry.js → p-158c73b0.entry.js} +2 -2
  159. package/dist/nano-components/p-365c997a.js +5 -0
  160. package/dist/nano-components/p-553acf24.entry.js +5 -0
  161. package/dist/nano-components/p-553acf24.entry.js.map +1 -0
  162. package/dist/nano-components/p-6975f110.entry.js +5 -0
  163. package/dist/nano-components/p-6975f110.entry.js.map +1 -0
  164. package/dist/nano-components/p-71057181.js +5 -0
  165. package/dist/nano-components/p-71057181.js.map +1 -0
  166. package/dist/nano-components/p-842cf127.js +5 -0
  167. package/dist/nano-components/p-842cf127.js.map +1 -0
  168. package/dist/nano-components/p-ad6209ec.entry.js +5 -0
  169. package/dist/nano-components/p-ad6209ec.entry.js.map +1 -0
  170. package/dist/nano-components/p-b8e76fdf.entry.js +5 -0
  171. package/dist/nano-components/p-b8e76fdf.entry.js.map +1 -0
  172. package/dist/{esm/table.worker-f820b411.js → nano-components/p-bd51e29f.js} +1 -1
  173. package/dist/nano-components/p-bdef618c.entry.js +5 -0
  174. package/dist/nano-components/p-bdef618c.entry.js.map +1 -0
  175. package/dist/nano-components/p-d79c6862.entry.js +5 -0
  176. package/dist/nano-components/p-d79c6862.entry.js.map +1 -0
  177. package/dist/nano-components/p-deb0799c.entry.js +5 -0
  178. package/dist/nano-components/{p-6a3a29c6.entry.js.map → p-deb0799c.entry.js.map} +1 -1
  179. package/dist/nano-components/p-ebb98a9e.entry.js +5 -0
  180. package/dist/nano-components/p-ebb98a9e.entry.js.map +1 -0
  181. package/dist/nano-components/p-f60fe933.entry.js +5 -0
  182. package/dist/nano-components/p-f60fe933.entry.js.map +1 -0
  183. package/dist/nano-components/p-f7535f45.entry.js +5 -0
  184. package/dist/nano-components/p-f7535f45.entry.js.map +1 -0
  185. package/dist/nano-components/p-fc585ea2.js +5 -0
  186. package/dist/nano-components/p-fc585ea2.js.map +1 -0
  187. package/dist/types/components/grid/grid-item.d.ts +3 -11
  188. package/dist/types/components/grid/grid.d.ts +44 -68
  189. package/dist/types/components/hero/hero.d.ts +1 -3
  190. package/dist/types/components/icon-button/icon-button.d.ts +14 -0
  191. package/dist/types/components/sortable/sortable.d.ts +204 -0
  192. package/dist/types/components/table/table-interface.d.ts +2 -4
  193. package/dist/types/components/table/table.d.ts +5 -30
  194. package/dist/types/components/table/table.header.d.ts +0 -3
  195. package/dist/types/components/tabs/tab-group.d.ts +0 -1
  196. package/dist/types/components/tabs/tab.d.ts +6 -0
  197. package/dist/types/components.d.ts +333 -89
  198. package/dist/types/utils/constructible-style.d.ts +31 -0
  199. package/dist/types/utils/drag.d.ts +21 -1
  200. package/docs-json.json +743 -168
  201. package/docs-vscode.json +102 -26
  202. package/hydrate/index.js +1210 -552
  203. package/package.json +2 -2
  204. package/dist/cjs/form-control-2e900f54.js.map +0 -1
  205. package/dist/cjs/nano-grid_3.cjs.entry.js +0 -431
  206. package/dist/cjs/nano-grid_3.cjs.entry.js.map +0 -1
  207. package/dist/cjs/nano-table-54a4ba34.js.map +0 -1
  208. package/dist/cjs/table.worker-20ed37a5.js.map +0 -1
  209. package/dist/collection/components/grid/grid-item.css +0 -15
  210. package/dist/components/grid-item.js +0 -107
  211. package/dist/components/grid-item.js.map +0 -1
  212. package/dist/esm/form-control-269ba84f.js.map +0 -1
  213. package/dist/esm/nano-grid_3.entry.js +0 -425
  214. package/dist/esm/nano-grid_3.entry.js.map +0 -1
  215. package/dist/esm/nano-table-929ac4d9.js.map +0 -1
  216. package/dist/esm/table.worker-2425382a.js.map +0 -1
  217. package/dist/nano-components/p-068bdd89.entry.js +0 -5
  218. package/dist/nano-components/p-068bdd89.entry.js.map +0 -1
  219. package/dist/nano-components/p-107d4549.entry.js +0 -5
  220. package/dist/nano-components/p-107d4549.entry.js.map +0 -1
  221. package/dist/nano-components/p-239d343a.entry.js +0 -5
  222. package/dist/nano-components/p-239d343a.entry.js.map +0 -1
  223. package/dist/nano-components/p-4f260028.js +0 -5
  224. package/dist/nano-components/p-4f260028.js.map +0 -1
  225. package/dist/nano-components/p-5381c118.js +0 -5
  226. package/dist/nano-components/p-58b53239.entry.js +0 -5
  227. package/dist/nano-components/p-58b53239.entry.js.map +0 -1
  228. package/dist/nano-components/p-5ac74848.js +0 -5
  229. package/dist/nano-components/p-5ac74848.js.map +0 -1
  230. package/dist/nano-components/p-64b56ee6.entry.js +0 -5
  231. package/dist/nano-components/p-64b56ee6.entry.js.map +0 -1
  232. package/dist/nano-components/p-6a3a29c6.entry.js +0 -5
  233. package/dist/nano-components/p-a5a560e7.entry.js +0 -5
  234. package/dist/nano-components/p-a5a560e7.entry.js.map +0 -1
  235. package/dist/nano-components/p-a761ac89.entry.js +0 -5
  236. package/dist/nano-components/p-a761ac89.entry.js.map +0 -1
  237. package/dist/nano-components/p-d792f692.entry.js +0 -5
  238. package/dist/nano-components/p-d792f692.entry.js.map +0 -1
  239. /package/dist/nano-components/{p-5381c118.js.map → p-158c73b0.entry.js.map} +0 -0
  240. /package/dist/nano-components/{p-906de5a2.entry.js.map → p-365c997a.js.map} +0 -0
@@ -2,152 +2,27 @@
2
2
  * Web Components for Nanopore digital Web Apps
3
3
  */
4
4
  import { h } from '@stencil/core';
5
- const STATEOPTS = ['col-span', 'col-start', 'row-span', 'row-start'];
5
+ // import type { GridSizes } from '../../interface';
6
+ // const STATEOPTS = ['col-span', 'col-start', 'row-span', 'row-start'];
6
7
  /**
8
+ * @deprecated - you can now use `grid-states="..."`
9
+ * on any direct `nano-grid` descendent without limitation rendering `nano-grid-item` obsolete.
10
+ *
7
11
  * Grid items to be used with [grid](/story/nano-components-grid) elements
8
12
  */
9
13
  export class GridItem {
10
- constructor() {
11
- this.currGridSizes = [null];
12
- this.gridStates = '';
13
- }
14
- updateGridClasses() {
15
- this.applyChildrenClasses();
16
- }
17
14
  /**
18
- * Called by parent grid to trigger new classes
19
- * @internal
15
+ * How to position this item within it's parent grid at different break points. Examples:
16
+ * xl-col-span-2
17
+ * l-col-start-2
18
+ * xxl-row-span-2
19
+ * m-row-start-2
20
20
  */
21
- async changeBP(newGridSizes) {
22
- if (this.currGridSizes === newGridSizes)
23
- return;
24
- this.currGridSizes = newGridSizes;
25
- if (!this.gridStates.length)
26
- return;
27
- this.applyChildrenClasses();
28
- }
29
- applyChildrenClasses() {
30
- let stateArr = [''];
31
- let itemState = '';
32
- let found;
33
- let classes;
34
- // item states come in 4 possible flavours at every breakpoint. E.g.
35
- // xl-col-span-2
36
- // xl-col-start-2
37
- // xl-row-span-2
38
- // xl-row-start-2
39
- // clear all previous grid state classnames
40
- classes = this.el.className
41
- .split(' ')
42
- .filter((c) => !c.startsWith('nano-grid-'));
43
- this.el.className = classes.join(' ').trim();
44
- // get all potential states this element can have
45
- const itemStates = this.gridStates.split(' ');
46
- // loop through all potential state options: col & row span & start
47
- STATEOPTS.forEach((stateOpt) => {
48
- // reset found flag
49
- found = false;
50
- // loop through all the current valid breakpoints / sizes backwards because
51
- // we only care about the item's state at the largest current breakpoint.
52
- this.currGridSizes
53
- .slice()
54
- .reverse()
55
- .forEach((size) => {
56
- if (found || !size)
57
- return;
58
- found = itemStates.find((state) => state.indexOf(`${size.size}-${stateOpt}`) === 0);
59
- // found a state at this current size. apply class.
60
- if (found) {
61
- // clear previous grid state classname
62
- classes = this.el.className
63
- .split(' ')
64
- .filter((c) => !c.includes('nano-grid-${stateOpt}'));
65
- this.el.className = classes.join(' ').trim();
66
- stateArr = found.split('-');
67
- // remove the size of the state
68
- stateArr.shift();
69
- itemState = stateArr.join('-');
70
- // add new class
71
- this.el.classList.add(`nano-grid-${itemState}`);
72
- }
73
- });
74
- });
75
- }
76
21
  render() {
77
22
  return h("slot", null);
78
23
  }
79
24
  static get is() { return "nano-grid-item"; }
80
25
  static get encapsulation() { return "shadow"; }
81
- static get originalStyleUrls() {
82
- return {
83
- "$": ["grid-item.scss"]
84
- };
85
- }
86
- static get styleUrls() {
87
- return {
88
- "$": ["grid-item.css"]
89
- };
90
- }
91
- static get properties() {
92
- return {
93
- "gridStates": {
94
- "type": "string",
95
- "mutable": false,
96
- "complexType": {
97
- "original": "string",
98
- "resolved": "string",
99
- "references": {}
100
- },
101
- "required": false,
102
- "optional": false,
103
- "docs": {
104
- "tags": [],
105
- "text": "How to position this item within it's parent grid at different break points. Examples:\nxl-col-span-2\nl-col-start-2\nxxl-row-span-2\nm-row-start-2"
106
- },
107
- "getter": false,
108
- "setter": false,
109
- "attribute": "grid-states",
110
- "reflect": false,
111
- "defaultValue": "''"
112
- }
113
- };
114
- }
115
- static get methods() {
116
- return {
117
- "changeBP": {
118
- "complexType": {
119
- "signature": "(newGridSizes: GridSizes[]) => Promise<void>",
120
- "parameters": [{
121
- "tags": [],
122
- "text": ""
123
- }],
124
- "references": {
125
- "Promise": {
126
- "location": "global"
127
- },
128
- "GridSizes": {
129
- "location": "import",
130
- "path": "../../interface"
131
- }
132
- },
133
- "return": "Promise<void>"
134
- },
135
- "docs": {
136
- "text": "Called by parent grid to trigger new classes",
137
- "tags": [{
138
- "name": "internal",
139
- "text": undefined
140
- }]
141
- }
142
- }
143
- };
144
- }
145
- static get elementRef() { return "el"; }
146
- static get watchers() {
147
- return [{
148
- "propName": "gridStates",
149
- "methodName": "updateGridClasses"
150
- }];
151
- }
26
+ static get styles() { return ":host { display: inline-block; }"; }
152
27
  }
153
28
  //# sourceMappingURL=grid-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-item.js","sourceRoot":"","sources":["../../../src/components/grid/grid-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, Method, Watch } from '@stencil/core';\nimport type { GridSizes } from '../../interface';\n\nconst STATEOPTS = ['col-span', 'col-start', 'row-span', 'row-start'];\n\n/**\n * Grid items to be used with [grid](/story/nano-components-grid) elements\n */\n@Component({\n tag: 'nano-grid-item',\n styleUrl: 'grid-item.scss',\n shadow: true,\n})\nexport class GridItem {\n private currGridSizes: GridSizes[] = [null];\n\n @Element() private el: HTMLNanoGridItemElement;\n /**\n * How to position this item within it's parent grid at different break points. Examples:\n * xl-col-span-2\n * l-col-start-2\n * xxl-row-span-2\n * m-row-start-2\n */\n @Prop() gridStates: string = '';\n\n @Watch('gridStates')\n updateGridClasses() {\n this.applyChildrenClasses();\n }\n\n /**\n * Called by parent grid to trigger new classes\n * @internal\n */\n @Method()\n async changeBP(newGridSizes: GridSizes[]) {\n if (this.currGridSizes === newGridSizes) return;\n this.currGridSizes = newGridSizes;\n\n if (!this.gridStates.length) return;\n this.applyChildrenClasses();\n }\n\n private applyChildrenClasses() {\n let stateArr: Array<string> = [''];\n let itemState: string = '';\n let found: any;\n let classes: Array<string>;\n\n // item states come in 4 possible flavours at every breakpoint. E.g.\n // xl-col-span-2\n // xl-col-start-2\n // xl-row-span-2\n // xl-row-start-2\n\n // clear all previous grid state classnames\n classes = this.el.className\n .split(' ')\n .filter((c) => !c.startsWith('nano-grid-'));\n this.el.className = classes.join(' ').trim();\n\n // get all potential states this element can have\n const itemStates = this.gridStates.split(' ');\n\n // loop through all potential state options: col & row span & start\n STATEOPTS.forEach((stateOpt) => {\n // reset found flag\n found = false;\n\n // loop through all the current valid breakpoints / sizes backwards because\n // we only care about the item's state at the largest current breakpoint.\n this.currGridSizes\n .slice()\n .reverse()\n .forEach((size) => {\n if (found || !size) return;\n found = itemStates.find(\n (state) => state.indexOf(`${size.size}-${stateOpt}`) === 0\n );\n\n // found a state at this current size. apply class.\n if (found) {\n // clear previous grid state classname\n classes = this.el.className\n .split(' ')\n .filter((c) => !c.includes('nano-grid-${stateOpt}'));\n this.el.className = classes.join(' ').trim();\n\n stateArr = found.split('-');\n\n // remove the size of the state\n stateArr.shift();\n itemState = stateArr.join('-');\n\n // add new class\n this.el.classList.add(`nano-grid-${itemState}`);\n }\n });\n });\n }\n\n render() {\n return <slot />;\n }\n}\n"]}
1
+ {"version":3,"file":"grid-item.js","sourceRoot":"","sources":["../../../src/components/grid/grid-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAC7C,oDAAoD;AAEpD,wEAAwE;AAExE;;;;;GAKG;AAMH,MAAM,OAAO,QAAQ;EACnB;;;;;;KAMG;EAEH,MAAM;IACJ,OAAO,eAAQ,CAAC;EAClB,CAAC;;;;CACF","sourcesContent":["import { Component, h } from '@stencil/core';\n// import type { GridSizes } from '../../interface';\n\n// const STATEOPTS = ['col-span', 'col-start', 'row-span', 'row-start'];\n\n/**\n * @deprecated - you can now use `grid-states=\"...\"`\n * on any direct `nano-grid` descendent without limitation rendering `nano-grid-item` obsolete.\n *\n * Grid items to be used with [grid](/story/nano-components-grid) elements\n */\n@Component({\n tag: 'nano-grid-item',\n styles: /* css */ `:host { display: inline-block; }`,\n shadow: true,\n})\nexport class GridItem {\n /**\n * How to position this item within it's parent grid at different break points. Examples:\n * xl-col-span-2\n * l-col-start-2\n * xxl-row-span-2\n * m-row-start-2\n */\n\n render() {\n return <slot />;\n }\n}\n"]}
@@ -17,173 +17,26 @@
17
17
  */
18
18
  --grid-col-gap: var(--nano-spacing-medium, 16px);
19
19
  --grid-row-gap: var(--nano-spacing-medium, 16px);
20
- --current-grid-size: "'grid size: sm'";
20
+ --current-grid-size: "grid size: s";
21
+ container-type: inline-size;
21
22
  display: block;
22
- opacity: 0;
23
- transition: 0.2s ease opacity;
24
- max-width: 100%;
25
23
  }
26
24
  :host .grid {
27
- /* autoprefixer: ignore next */
28
25
  display: grid;
29
- /* autoprefixer: ignore next */
30
- grid-gap: var(--grid-row-gap) var(--grid-col-gap);
26
+ gap: var(--grid-row-gap) var(--grid-col-gap);
31
27
  block-size: inherit;
32
28
  min-block-size: inherit;
33
29
  }
34
30
 
35
- :host(.ready) {
36
- opacity: 1;
37
- }
38
-
39
- :host(.has-grid) .grid {
40
- display: grid;
41
- }
42
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-1) {
43
- grid-column-start: 1 !important;
44
- }
45
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-1) {
46
- grid-row-start: 1 !important;
47
- }
48
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-1) {
49
- grid-column-end: span 1 !important;
50
- }
51
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-1) {
52
- grid-row-end: span 1 !important;
53
- }
54
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-2) {
55
- grid-column-start: 2 !important;
56
- }
57
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-2) {
58
- grid-row-start: 2 !important;
59
- }
60
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-2) {
61
- grid-column-end: span 2 !important;
62
- }
63
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-2) {
64
- grid-row-end: span 2 !important;
65
- }
66
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-3) {
67
- grid-column-start: 3 !important;
68
- }
69
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-3) {
70
- grid-row-start: 3 !important;
71
- }
72
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-3) {
73
- grid-column-end: span 3 !important;
74
- }
75
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-3) {
76
- grid-row-end: span 3 !important;
77
- }
78
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-4) {
79
- grid-column-start: 4 !important;
80
- }
81
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-4) {
82
- grid-row-start: 4 !important;
83
- }
84
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-4) {
85
- grid-column-end: span 4 !important;
86
- }
87
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-4) {
88
- grid-row-end: span 4 !important;
89
- }
90
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-5) {
91
- grid-column-start: 5 !important;
92
- }
93
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-5) {
94
- grid-row-start: 5 !important;
95
- }
96
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-5) {
97
- grid-column-end: span 5 !important;
98
- }
99
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-5) {
100
- grid-row-end: span 5 !important;
101
- }
102
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-6) {
103
- grid-column-start: 6 !important;
104
- }
105
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-6) {
106
- grid-row-start: 6 !important;
107
- }
108
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-6) {
109
- grid-column-end: span 6 !important;
110
- }
111
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-6) {
112
- grid-row-end: span 6 !important;
113
- }
114
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-7) {
115
- grid-column-start: 7 !important;
116
- }
117
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-7) {
118
- grid-row-start: 7 !important;
119
- }
120
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-7) {
121
- grid-column-end: span 7 !important;
122
- }
123
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-7) {
124
- grid-row-end: span 7 !important;
125
- }
126
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-8) {
127
- grid-column-start: 8 !important;
128
- }
129
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-8) {
130
- grid-row-start: 8 !important;
131
- }
132
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-8) {
133
- grid-column-end: span 8 !important;
134
- }
135
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-8) {
136
- grid-row-end: span 8 !important;
137
- }
138
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-9) {
139
- grid-column-start: 9 !important;
140
- }
141
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-9) {
142
- grid-row-start: 9 !important;
143
- }
144
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-9) {
145
- grid-column-end: span 9 !important;
146
- }
147
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-9) {
148
- grid-row-end: span 9 !important;
149
- }
150
- :host(.has-grid) .grid ::slotted(.nano-grid-col-start-10) {
151
- grid-column-start: 10 !important;
152
- }
153
- :host(.has-grid) .grid ::slotted(.nano-grid-row-start-10) {
154
- grid-row-start: 10 !important;
155
- }
156
- :host(.has-grid) .grid ::slotted(.nano-grid-col-span-10) {
157
- grid-column-end: span 10 !important;
158
- }
159
- :host(.has-grid) .grid ::slotted(.nano-grid-row-span-10) {
160
- grid-row-end: span 10 !important;
161
- }
162
-
163
- :host([content-panel]:not([content-panel=false])) .grid {
164
- grid-template-rows: auto 1fr;
165
- }
166
-
167
- :host([full-height]:not([full-height=false])) {
168
- block-size: 100%;
169
- }
170
- :host([full-height]:not([full-height=false])) .grid {
171
- grid-template-rows: 1fr;
172
- }
173
-
174
- :host([show-helper]:not([show-helper=false])) .grid {
31
+ :host([show-helper]:not([show-helper=false])) {
175
32
  position: relative;
176
33
  }
177
- :host([show-helper]:not([show-helper=false])) .grid::after {
178
- content: "";
34
+ :host([show-helper]:not([show-helper=false])) .grid--helper {
179
35
  position: absolute;
180
36
  inset: 0;
181
37
  pointer-events: none;
182
- background-image: repeating-linear-gradient(to right, rgba(126, 195, 241, 0.25), rgba(126, 195, 241, 0.25) var(--col-width), transparent var(--col-width), transparent var(--repeat-width));
183
- background-size: calc(100% + var(--grid-col-gap)) 100%;
184
- z-index: 100;
185
38
  }
186
- :host([show-helper]:not([show-helper=false])) .grid::before {
39
+ :host([show-helper]:not([show-helper=false])) .grid--helper::before {
187
40
  content: var(--current-grid-size);
188
41
  font-size: 30px;
189
42
  position: absolute;
@@ -197,93 +50,7 @@
197
50
  z-index: 99;
198
51
  pointer-events: none;
199
52
  }
200
-
201
- :host(.nano-grid-1) {
202
- --current-grid-size: "grid size: 1";
203
- --col-width: calc(100% - var(--grid-col-gap));
204
- --repeat-width: calc(100% / 1);
205
- }
206
- :host(.nano-grid-1) .grid {
207
- grid-template-columns: repeat(1, minmax(var(--col-width), 1fr));
208
- }
209
-
210
- :host(.nano-grid-2) {
211
- --current-grid-size: "grid size: 2";
212
- --col-width: calc(50% - var(--grid-col-gap));
213
- --repeat-width: calc(100% / 2);
214
- }
215
- :host(.nano-grid-2) .grid {
216
- grid-template-columns: repeat(2, minmax(var(--col-width), 1fr));
217
- }
218
-
219
- :host(.nano-grid-3) {
220
- --current-grid-size: "grid size: 3";
221
- --col-width: calc(33.3333333333% - var(--grid-col-gap));
222
- --repeat-width: calc(100% / 3);
223
- }
224
- :host(.nano-grid-3) .grid {
225
- grid-template-columns: repeat(3, minmax(var(--col-width), 1fr));
226
- }
227
-
228
- :host(.nano-grid-4) {
229
- --current-grid-size: "grid size: 4";
230
- --col-width: calc(25% - var(--grid-col-gap));
231
- --repeat-width: calc(100% / 4);
232
- }
233
- :host(.nano-grid-4) .grid {
234
- grid-template-columns: repeat(4, minmax(var(--col-width), 1fr));
235
- }
236
-
237
- :host(.nano-grid-5) {
238
- --current-grid-size: "grid size: 5";
239
- --col-width: calc(20% - var(--grid-col-gap));
240
- --repeat-width: calc(100% / 5);
241
- }
242
- :host(.nano-grid-5) .grid {
243
- grid-template-columns: repeat(5, minmax(var(--col-width), 1fr));
244
- }
245
-
246
- :host(.nano-grid-6) {
247
- --current-grid-size: "grid size: 6";
248
- --col-width: calc(16.6666666667% - var(--grid-col-gap));
249
- --repeat-width: calc(100% / 6);
250
- }
251
- :host(.nano-grid-6) .grid {
252
- grid-template-columns: repeat(6, minmax(var(--col-width), 1fr));
253
- }
254
-
255
- :host(.nano-grid-7) {
256
- --current-grid-size: "grid size: 7";
257
- --col-width: calc(14.2857142857% - var(--grid-col-gap));
258
- --repeat-width: calc(100% / 7);
259
- }
260
- :host(.nano-grid-7) .grid {
261
- grid-template-columns: repeat(7, minmax(var(--col-width), 1fr));
262
- }
263
-
264
- :host(.nano-grid-8) {
265
- --current-grid-size: "grid size: 8";
266
- --col-width: calc(12.5% - var(--grid-col-gap));
267
- --repeat-width: calc(100% / 8);
268
- }
269
- :host(.nano-grid-8) .grid {
270
- grid-template-columns: repeat(8, minmax(var(--col-width), 1fr));
271
- }
272
-
273
- :host(.nano-grid-9) {
274
- --current-grid-size: "grid size: 9";
275
- --col-width: calc(11.1111111111% - var(--grid-col-gap));
276
- --repeat-width: calc(100% / 9);
277
- }
278
- :host(.nano-grid-9) .grid {
279
- grid-template-columns: repeat(9, minmax(var(--col-width), 1fr));
280
- }
281
-
282
- :host(.nano-grid-10) {
283
- --current-grid-size: "grid size: 10";
284
- --col-width: calc(10% - var(--grid-col-gap));
285
- --repeat-width: calc(100% / 10);
286
- }
287
- :host(.nano-grid-10) .grid {
288
- grid-template-columns: repeat(10, minmax(var(--col-width), 1fr));
53
+ :host([show-helper]:not([show-helper=false])) .grid__helper-item {
54
+ display: none;
55
+ background: rgba(126, 195, 241, 0.25);
289
56
  }