@sula-tech/webcomponents 0.1.1 → 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 (63) hide show
  1. package/dist/cjs/{index-7973b779.js → index-3eac14f6.js} +102 -4
  2. package/dist/cjs/index-3eac14f6.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{sula-avatar_3.cjs.entry.js → sula-avatar_4.cjs.entry.js} +133 -5
  5. package/dist/cjs/sula-avatar_4.cjs.entry.js.map +1 -0
  6. package/dist/cjs/webcomponents.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +2 -1
  8. package/dist/collection/components/sula-avatar/sula-avatar.css +1 -1
  9. package/dist/collection/components/sula-avatar/sula-avatar.stories.js +14 -17
  10. package/dist/collection/components/sula-avatar/sula-avatar.stories.js.map +1 -1
  11. package/dist/collection/components/sula-button/sula-button.css +1 -1
  12. package/dist/collection/components/sula-button/sula-button.stories.js +36 -9
  13. package/dist/collection/components/sula-button/sula-button.stories.js.map +1 -1
  14. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  15. package/dist/collection/components/sula-icon/sula-icon.stories.js +35 -14
  16. package/dist/collection/components/sula-icon/sula-icon.stories.js.map +1 -1
  17. package/dist/collection/components/sula-textfield/model/sula-textfield.model.js +11 -0
  18. package/dist/collection/components/sula-textfield/model/sula-textfield.model.js.map +1 -0
  19. package/dist/collection/components/sula-textfield/sula-textfield.css +1 -0
  20. package/dist/collection/components/sula-textfield/sula-textfield.js +376 -0
  21. package/dist/collection/components/sula-textfield/sula-textfield.js.map +1 -0
  22. package/dist/collection/components/sula-textfield/sula-textfield.stories.js +148 -0
  23. package/dist/collection/components/sula-textfield/sula-textfield.stories.js.map +1 -0
  24. package/dist/components/index.js +1 -1
  25. package/dist/components/{p-81fcc74a.js → p-a07ff261.js} +3 -3
  26. package/dist/components/{p-81fcc74a.js.map → p-a07ff261.js.map} +1 -1
  27. package/dist/components/{p-d3ba6302.js → p-ca146b16.js} +91 -5
  28. package/dist/components/p-ca146b16.js.map +1 -0
  29. package/dist/components/sula-avatar.js +3 -3
  30. package/dist/components/sula-avatar.js.map +1 -1
  31. package/dist/components/sula-button.js +3 -3
  32. package/dist/components/sula-button.js.map +1 -1
  33. package/dist/components/sula-icon.js +1 -1
  34. package/dist/components/sula-textfield.d.ts +11 -0
  35. package/dist/components/sula-textfield.js +171 -0
  36. package/dist/components/sula-textfield.js.map +1 -0
  37. package/dist/esm/{index-9bf8f892.js → index-1dc4ae53.js} +102 -4
  38. package/dist/esm/index-1dc4ae53.js.map +1 -0
  39. package/dist/esm/loader.js +3 -3
  40. package/dist/esm/{sula-avatar_3.entry.js → sula-avatar_4.entry.js} +133 -6
  41. package/dist/esm/sula-avatar_4.entry.js.map +1 -0
  42. package/dist/esm/webcomponents.js +3 -3
  43. package/dist/types/components/sula-avatar/sula-avatar.stories.d.ts +0 -1
  44. package/dist/types/components/sula-button/sula-button.stories.d.ts +2 -0
  45. package/dist/types/components/sula-icon/sula-icon.stories.d.ts +5 -2
  46. package/dist/types/components/sula-textfield/model/sula-textfield.model.d.ts +8 -0
  47. package/dist/types/components/sula-textfield/sula-textfield.d.ts +74 -0
  48. package/dist/types/components/sula-textfield/sula-textfield.stories.d.ts +108 -0
  49. package/dist/types/components.d.ts +116 -0
  50. package/dist/webcomponents/{p-82d7a024.entry.js → p-77709b3c.entry.js} +201 -9
  51. package/dist/webcomponents/p-77709b3c.entry.js.map +1 -0
  52. package/dist/webcomponents/{p-cca32e44.js → p-fbee9d79.js} +426 -325
  53. package/dist/webcomponents/p-fbee9d79.js.map +1 -0
  54. package/dist/webcomponents/webcomponents.esm.js +27 -13
  55. package/dist/webcomponents/webcomponents.esm.js.map +1 -1
  56. package/package.json +20 -12
  57. package/dist/cjs/index-7973b779.js.map +0 -1
  58. package/dist/cjs/sula-avatar_3.cjs.entry.js.map +0 -1
  59. package/dist/components/p-d3ba6302.js.map +0 -1
  60. package/dist/esm/index-9bf8f892.js.map +0 -1
  61. package/dist/esm/sula-avatar_3.entry.js.map +0 -1
  62. package/dist/webcomponents/p-82d7a024.entry.js.map +0 -1
  63. package/dist/webcomponents/p-cca32e44.js.map +0 -1
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'webcomponents';
24
- const BUILD = /* webcomponents */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: true, isDev: false, isTesting: false, lazyLoad: true, lifecycle: false, lifecycleDOMEvents: true, member: true, method: false, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: false, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: false, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: false };
24
+ const BUILD = /* webcomponents */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: true, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: true, member: true, method: false, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: false };
25
25
 
26
26
  /*
27
27
  Stencil Client Platform v4.26.0 | MIT Licensed | https://stenciljs.com
@@ -104,6 +104,22 @@ var plt = {
104
104
  rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
105
105
  ce: (eventName, opts) => new CustomEvent(eventName, opts)
106
106
  };
107
+ var supportsListenerOptions = /* @__PURE__ */ (() => {
108
+ let supportsListenerOptions2 = false;
109
+ try {
110
+ doc.addEventListener(
111
+ "e",
112
+ null,
113
+ Object.defineProperty({}, "passive", {
114
+ get() {
115
+ supportsListenerOptions2 = true;
116
+ }
117
+ })
118
+ );
119
+ } catch (e) {
120
+ }
121
+ return supportsListenerOptions2;
122
+ })();
107
123
  var promiseResolve = (v) => Promise.resolve(v);
108
124
  var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
109
125
  try {
@@ -290,6 +306,9 @@ var parsePropertyValue = (propValue, propType) => {
290
306
  if (propType & 4 /* Boolean */) {
291
307
  return propValue === "false" ? false : propValue === "" || !!propValue;
292
308
  }
309
+ if (propType & 2 /* Number */) {
310
+ return parseFloat(propValue);
311
+ }
293
312
  if (propType & 1 /* String */) {
294
313
  return String(propValue);
295
314
  }
@@ -423,7 +442,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
423
442
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
424
443
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
425
444
  }
426
- } else if (memberName === "key") ; else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
445
+ } else if (memberName === "key") ; else if (memberName === "ref") {
446
+ if (newValue) {
447
+ newValue(elm);
448
+ }
449
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
427
450
  if (memberName[2] === "-") {
428
451
  memberName = memberName.slice(3);
429
452
  } else if (isMemberInElement(win, ln)) {
@@ -577,6 +600,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
577
600
  const vnode = vnodes[index];
578
601
  if (vnode) {
579
602
  const elm = vnode.$elm$;
603
+ nullifyVNodeRefs(vnode);
580
604
  if (elm) {
581
605
  elm.remove();
582
606
  }
@@ -707,6 +731,12 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
707
731
  elm.data = text;
708
732
  }
709
733
  };
734
+ var nullifyVNodeRefs = (vNode) => {
735
+ {
736
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
737
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
738
+ }
739
+ };
710
740
  var insertBefore = (parent, newNode, reference) => {
711
741
  {
712
742
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
@@ -769,7 +799,17 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
769
799
  }
770
800
  let maybePromise;
771
801
  if (isInitialLoad) {
802
+ {
803
+ hostRef.$flags$ |= 256 /* isListenReady */;
804
+ if (hostRef.$queuedListeners$) {
805
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
806
+ hostRef.$queuedListeners$ = void 0;
807
+ }
808
+ }
772
809
  emitLifecycleEvent(elm, "componentWillLoad");
810
+ {
811
+ maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
812
+ }
773
813
  } else {
774
814
  emitLifecycleEvent(elm, "componentWillUpdate");
775
815
  }
@@ -837,6 +877,7 @@ var postUpdateComponent = (hostRef) => {
837
877
  const tagName = hostRef.$cmpMeta$.$tagName$;
838
878
  const elm = hostRef.$hostElement$;
839
879
  const endPostUpdate = createTime("postUpdate", tagName);
880
+ const instance = hostRef.$lazyInstance$ ;
840
881
  const ancestorComponent = hostRef.$ancestorComponent$;
841
882
  emitLifecycleEvent(elm, "componentDidRender");
842
883
  if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
@@ -844,6 +885,9 @@ var postUpdateComponent = (hostRef) => {
844
885
  {
845
886
  addHydratedFlag(elm);
846
887
  }
888
+ {
889
+ safeCall(instance, "componentDidLoad", void 0, elm);
890
+ }
847
891
  emitLifecycleEvent(elm, "componentDidLoad");
848
892
  endPostUpdate();
849
893
  {
@@ -870,6 +914,16 @@ var postUpdateComponent = (hostRef) => {
870
914
  var appDidLoad = (who) => {
871
915
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
872
916
  };
917
+ var safeCall = (instance, method, arg, elm) => {
918
+ if (instance && instance[method]) {
919
+ try {
920
+ return instance[method](arg);
921
+ } catch (e) {
922
+ consoleError(e, elm);
923
+ }
924
+ }
925
+ return void 0;
926
+ };
873
927
  var emitLifecycleEvent = (elm, lifecycleName) => {
874
928
  {
875
929
  emitEvent(elm, "stencil_" + lifecycleName, {
@@ -1126,6 +1180,7 @@ var connectedCallback = (elm) => {
1126
1180
  initializeComponent(elm, hostRef, cmpMeta);
1127
1181
  }
1128
1182
  } else {
1183
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
1129
1184
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1130
1185
  hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
1131
1186
  }
@@ -1138,6 +1193,12 @@ var disconnectInstance = (instance, elm) => {
1138
1193
  var disconnectedCallback = async (elm) => {
1139
1194
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1140
1195
  const hostRef = getHostRef(elm);
1196
+ {
1197
+ if (hostRef.$rmListeners$) {
1198
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
1199
+ hostRef.$rmListeners$ = void 0;
1200
+ }
1201
+ }
1141
1202
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1142
1203
  hostRef.$onReadyPromise$.then(() => disconnectInstance());
1143
1204
  }
@@ -1180,6 +1241,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1180
1241
  {
1181
1242
  cmpMeta.$members$ = compactMeta[2];
1182
1243
  }
1244
+ {
1245
+ cmpMeta.$listeners$ = compactMeta[3];
1246
+ }
1183
1247
  const tagName = cmpMeta.$tagName$;
1184
1248
  const HostElement = class extends HTMLElement {
1185
1249
  // StencilLazyHost
@@ -1205,9 +1269,10 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1205
1269
  }
1206
1270
  }
1207
1271
  connectedCallback() {
1208
- getHostRef(this);
1272
+ const hostRef = getHostRef(this);
1209
1273
  if (!this.hasRegisteredEventListeners) {
1210
1274
  this.hasRegisteredEventListeners = true;
1275
+ addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
1211
1276
  }
1212
1277
  if (appLoadFallback) {
1213
1278
  clearTimeout(appLoadFallback);
@@ -1273,6 +1338,39 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1273
1338
  }
1274
1339
  endBootstrap();
1275
1340
  };
1341
+ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
1342
+ if (listeners) {
1343
+ listeners.map(([flags, name, method]) => {
1344
+ const target = getHostListenerTarget(elm, flags) ;
1345
+ const handler = hostListenerProxy(hostRef, method);
1346
+ const opts = hostListenerOpts(flags);
1347
+ plt.ael(target, name, handler, opts);
1348
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
1349
+ });
1350
+ }
1351
+ };
1352
+ var hostListenerProxy = (hostRef, methodName) => (ev) => {
1353
+ var _a;
1354
+ try {
1355
+ {
1356
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
1357
+ (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
1358
+ } else {
1359
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
1360
+ }
1361
+ }
1362
+ } catch (e) {
1363
+ consoleError(e, hostRef.$hostElement$);
1364
+ }
1365
+ };
1366
+ var getHostListenerTarget = (elm, flags) => {
1367
+ if (flags & 4 /* TargetDocument */) return doc;
1368
+ return elm;
1369
+ };
1370
+ var hostListenerOpts = (flags) => supportsListenerOptions ? {
1371
+ passive: (flags & 1 /* Passive */) !== 0,
1372
+ capture: (flags & 2 /* Capture */) !== 0
1373
+ } : (flags & 2 /* Capture */) !== 0;
1276
1374
 
1277
1375
  // src/runtime/nonce.ts
1278
1376
  var setNonce = (nonce) => plt.$nonce$ = nonce;
@@ -1285,4 +1383,4 @@ exports.promiseResolve = promiseResolve;
1285
1383
  exports.registerInstance = registerInstance;
1286
1384
  exports.setNonce = setNonce;
1287
1385
 
1288
- //# sourceMappingURL=index-7973b779.js.map
1386
+ //# sourceMappingURL=index-3eac14f6.js.map