proto-sudoku-wc 0.0.644 → 0.0.646

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.
@@ -364,6 +364,21 @@ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
364
364
  *
365
365
  * Modified for Stencil's compiler and vdom
366
366
  */
367
+ /**
368
+ * When running a VDom render set properties present on a VDom node onto the
369
+ * corresponding HTML element.
370
+ *
371
+ * Note that this function has special functionality for the `class`,
372
+ * `style`, `key`, and `ref` attributes, as well as event handlers (like
373
+ * `onClick`, etc). All others are just passed through as-is.
374
+ *
375
+ * @param elm the HTMLElement onto which attributes should be set
376
+ * @param memberName the name of the attribute to set
377
+ * @param oldValue the old value for the attribute
378
+ * @param newValue the new value for the attribute
379
+ * @param isSvg whether we're in an svg context or not
380
+ * @param flags bitflags for Vdom variables
381
+ */
367
382
  const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
368
383
  if (oldValue !== newValue) {
369
384
  let isProp = isMemberInElement(elm, memberName);
@@ -856,12 +871,39 @@ const patch = (oldVNode, newVNode) => {
856
871
  * @param hostRef data needed to root and render the virtual DOM tree, such as
857
872
  * the DOM node into which it should be rendered.
858
873
  * @param renderFnResults the virtual DOM nodes to be rendered
874
+ * @param isInitialLoad whether or not this is the first call after page load
859
875
  */
860
- const renderVdom = (hostRef, renderFnResults) => {
876
+ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
861
877
  const hostElm = hostRef.$hostElement$;
862
878
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
879
+ // if `renderFnResults` is a Host node then we can use it directly. If not,
880
+ // we need to call `h` again to wrap the children of our component in a
881
+ // 'dummy' Host node (well, an empty vnode) since `renderVdom` assumes
882
+ // implicitly that the top-level vdom node is 1) an only child and 2)
883
+ // contains attrs that need to be set on the host element.
863
884
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
864
885
  hostTagName = hostElm.tagName;
886
+ // On the first render and *only* on the first render we want to check for
887
+ // any attributes set on the host element which are also set on the vdom
888
+ // node. If we find them, we override the value on the VDom node attrs with
889
+ // the value from the host element, which allows developers building apps
890
+ // with Stencil components to override e.g. the `role` attribute on a
891
+ // component even if it's already set on the `Host`.
892
+ if (isInitialLoad && rootVnode.$attrs$) {
893
+ for (const key of Object.keys(rootVnode.$attrs$)) {
894
+ // We have a special implementation in `setAccessor` for `style` and
895
+ // `class` which reconciles values coming from the VDom with values
896
+ // already present on the DOM element, so we don't want to override those
897
+ // attributes on the VDom tree with values from the host element if they
898
+ // are present.
899
+ //
900
+ // Likewise, `ref` and `key` are special internal values for the Stencil
901
+ // runtime and we don't want to override those either.
902
+ if (hostElm.hasAttribute(key) && !['key', 'ref', 'style', 'class'].includes(key)) {
903
+ rootVnode.$attrs$[key] = hostElm[key];
904
+ }
905
+ }
906
+ }
865
907
  rootVnode.$tag$ = null;
866
908
  rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;
867
909
  hostRef.$vnode$ = rootVnode;
@@ -950,6 +992,16 @@ const enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.th
950
992
  */
951
993
  const isPromisey = (maybePromise) => maybePromise instanceof Promise ||
952
994
  (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');
995
+ /**
996
+ * Update a component given reference to its host elements and so on.
997
+ *
998
+ * @param hostRef an object containing references to the element's host node,
999
+ * VDom nodes, and other metadata
1000
+ * @param instance a reference to the underlying host element where it will be
1001
+ * rendered
1002
+ * @param isInitialLoad whether or not this function is being called as part of
1003
+ * the first render cycle
1004
+ */
953
1005
  const updateComponent = async (hostRef, instance, isInitialLoad) => {
954
1006
  var _a;
955
1007
  const elm = hostRef.$hostElement$;
@@ -961,7 +1013,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
961
1013
  }
962
1014
  const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);
963
1015
  {
964
- callRender(hostRef, instance);
1016
+ callRender(hostRef, instance, elm, isInitialLoad);
965
1017
  }
966
1018
  if (rc) {
967
1019
  // ok, so turns out there are some child host elements
@@ -985,7 +1037,19 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
985
1037
  }
986
1038
  }
987
1039
  };
988
- const callRender = (hostRef, instance, elm) => {
1040
+ /**
1041
+ * Handle making the call to the VDom renderer with the proper context given
1042
+ * various build variables
1043
+ *
1044
+ * @param hostRef an object containing references to the element's host node,
1045
+ * VDom nodes, and other metadata
1046
+ * @param instance a reference to the underlying host element where it will be
1047
+ * rendered
1048
+ * @param elm the Host element for the component
1049
+ * @param isInitialLoad whether or not this function is being called as part of
1050
+ * @returns an empty promise
1051
+ */
1052
+ const callRender = (hostRef, instance, elm, isInitialLoad) => {
989
1053
  try {
990
1054
  renderingRef = instance;
991
1055
  instance = instance.render() ;
@@ -1001,7 +1065,7 @@ const callRender = (hostRef, instance, elm) => {
1001
1065
  // or we need to update the css class/attrs on the host element
1002
1066
  // DOM WRITE!
1003
1067
  {
1004
- renderVdom(hostRef, instance);
1068
+ renderVdom(hostRef, instance, isInitialLoad);
1005
1069
  }
1006
1070
  }
1007
1071
  }
@@ -1282,6 +1346,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1282
1346
  schedule();
1283
1347
  }
1284
1348
  };
1349
+ const fireConnectedCallback = (instance) => {
1350
+ };
1285
1351
  const connectedCallback = (elm) => {
1286
1352
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1287
1353
  const hostRef = getHostRef(elm);
@@ -1320,12 +1386,25 @@ const connectedCallback = (elm) => {
1320
1386
  initializeComponent(elm, hostRef, cmpMeta);
1321
1387
  }
1322
1388
  }
1389
+ else {
1390
+ // fire off connectedCallback() on component instance
1391
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) ;
1392
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1393
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
1394
+ }
1395
+ }
1323
1396
  endConnected();
1324
1397
  }
1325
1398
  };
1326
- const disconnectedCallback = (elm) => {
1399
+ const disconnectInstance = (instance) => {
1400
+ };
1401
+ const disconnectedCallback = async (elm) => {
1327
1402
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1328
- getHostRef(elm);
1403
+ const hostRef = getHostRef(elm);
1404
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) ;
1405
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1406
+ hostRef.$onReadyPromise$.then(() => disconnectInstance());
1407
+ }
1329
1408
  }
1330
1409
  };
1331
1410
  const bootstrapLazy = (lazyBundles, options = {}) => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-9ad18987.js');
5
+ const index = require('./index-55e67faf.js');
6
6
 
7
7
  const defineCustomElements = (win, options) => {
8
8
  if (typeof window === 'undefined') return undefined;
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-9ad18987.js');
5
+ const index = require('./index-55e67faf.js');
6
6
 
7
7
  /*
8
- Stencil Client Patch Browser v4.0.2 | MIT Licensed | https://stenciljs.com
8
+ Stencil Client Patch Browser v4.0.3 | MIT Licensed | https://stenciljs.com
9
9
  */
10
10
  const patchBrowser = () => {
11
11
  const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('proto-sudoku-wc.cjs.js', document.baseURI).href));
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-9ad18987.js');
5
+ const index = require('./index-55e67faf.js');
6
6
 
7
7
  const Alien = props => {
8
8
  const hex = props.hex || 'currentColor';
@@ -4,7 +4,7 @@
4
4
  ],
5
5
  "compiler": {
6
6
  "name": "@stencil/core",
7
- "version": "4.0.2",
7
+ "version": "4.0.3",
8
8
  "typescriptVersion": "5.0.4"
9
9
  },
10
10
  "collections": [],
@@ -342,6 +342,21 @@ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
342
342
  *
343
343
  * Modified for Stencil's compiler and vdom
344
344
  */
345
+ /**
346
+ * When running a VDom render set properties present on a VDom node onto the
347
+ * corresponding HTML element.
348
+ *
349
+ * Note that this function has special functionality for the `class`,
350
+ * `style`, `key`, and `ref` attributes, as well as event handlers (like
351
+ * `onClick`, etc). All others are just passed through as-is.
352
+ *
353
+ * @param elm the HTMLElement onto which attributes should be set
354
+ * @param memberName the name of the attribute to set
355
+ * @param oldValue the old value for the attribute
356
+ * @param newValue the new value for the attribute
357
+ * @param isSvg whether we're in an svg context or not
358
+ * @param flags bitflags for Vdom variables
359
+ */
345
360
  const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
346
361
  if (oldValue !== newValue) {
347
362
  let isProp = isMemberInElement(elm, memberName);
@@ -834,12 +849,39 @@ const patch = (oldVNode, newVNode) => {
834
849
  * @param hostRef data needed to root and render the virtual DOM tree, such as
835
850
  * the DOM node into which it should be rendered.
836
851
  * @param renderFnResults the virtual DOM nodes to be rendered
852
+ * @param isInitialLoad whether or not this is the first call after page load
837
853
  */
838
- const renderVdom = (hostRef, renderFnResults) => {
854
+ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
839
855
  const hostElm = hostRef.$hostElement$;
840
856
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
857
+ // if `renderFnResults` is a Host node then we can use it directly. If not,
858
+ // we need to call `h` again to wrap the children of our component in a
859
+ // 'dummy' Host node (well, an empty vnode) since `renderVdom` assumes
860
+ // implicitly that the top-level vdom node is 1) an only child and 2)
861
+ // contains attrs that need to be set on the host element.
841
862
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
842
863
  hostTagName = hostElm.tagName;
864
+ // On the first render and *only* on the first render we want to check for
865
+ // any attributes set on the host element which are also set on the vdom
866
+ // node. If we find them, we override the value on the VDom node attrs with
867
+ // the value from the host element, which allows developers building apps
868
+ // with Stencil components to override e.g. the `role` attribute on a
869
+ // component even if it's already set on the `Host`.
870
+ if (isInitialLoad && rootVnode.$attrs$) {
871
+ for (const key of Object.keys(rootVnode.$attrs$)) {
872
+ // We have a special implementation in `setAccessor` for `style` and
873
+ // `class` which reconciles values coming from the VDom with values
874
+ // already present on the DOM element, so we don't want to override those
875
+ // attributes on the VDom tree with values from the host element if they
876
+ // are present.
877
+ //
878
+ // Likewise, `ref` and `key` are special internal values for the Stencil
879
+ // runtime and we don't want to override those either.
880
+ if (hostElm.hasAttribute(key) && !['key', 'ref', 'style', 'class'].includes(key)) {
881
+ rootVnode.$attrs$[key] = hostElm[key];
882
+ }
883
+ }
884
+ }
843
885
  rootVnode.$tag$ = null;
844
886
  rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;
845
887
  hostRef.$vnode$ = rootVnode;
@@ -928,6 +970,16 @@ const enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.th
928
970
  */
929
971
  const isPromisey = (maybePromise) => maybePromise instanceof Promise ||
930
972
  (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');
973
+ /**
974
+ * Update a component given reference to its host elements and so on.
975
+ *
976
+ * @param hostRef an object containing references to the element's host node,
977
+ * VDom nodes, and other metadata
978
+ * @param instance a reference to the underlying host element where it will be
979
+ * rendered
980
+ * @param isInitialLoad whether or not this function is being called as part of
981
+ * the first render cycle
982
+ */
931
983
  const updateComponent = async (hostRef, instance, isInitialLoad) => {
932
984
  var _a;
933
985
  const elm = hostRef.$hostElement$;
@@ -939,7 +991,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
939
991
  }
940
992
  const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);
941
993
  {
942
- callRender(hostRef, instance);
994
+ callRender(hostRef, instance, elm, isInitialLoad);
943
995
  }
944
996
  if (rc) {
945
997
  // ok, so turns out there are some child host elements
@@ -963,7 +1015,19 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
963
1015
  }
964
1016
  }
965
1017
  };
966
- const callRender = (hostRef, instance, elm) => {
1018
+ /**
1019
+ * Handle making the call to the VDom renderer with the proper context given
1020
+ * various build variables
1021
+ *
1022
+ * @param hostRef an object containing references to the element's host node,
1023
+ * VDom nodes, and other metadata
1024
+ * @param instance a reference to the underlying host element where it will be
1025
+ * rendered
1026
+ * @param elm the Host element for the component
1027
+ * @param isInitialLoad whether or not this function is being called as part of
1028
+ * @returns an empty promise
1029
+ */
1030
+ const callRender = (hostRef, instance, elm, isInitialLoad) => {
967
1031
  try {
968
1032
  renderingRef = instance;
969
1033
  instance = instance.render() ;
@@ -979,7 +1043,7 @@ const callRender = (hostRef, instance, elm) => {
979
1043
  // or we need to update the css class/attrs on the host element
980
1044
  // DOM WRITE!
981
1045
  {
982
- renderVdom(hostRef, instance);
1046
+ renderVdom(hostRef, instance, isInitialLoad);
983
1047
  }
984
1048
  }
985
1049
  }
@@ -1260,6 +1324,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1260
1324
  schedule();
1261
1325
  }
1262
1326
  };
1327
+ const fireConnectedCallback = (instance) => {
1328
+ };
1263
1329
  const connectedCallback = (elm) => {
1264
1330
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1265
1331
  const hostRef = getHostRef(elm);
@@ -1298,12 +1364,25 @@ const connectedCallback = (elm) => {
1298
1364
  initializeComponent(elm, hostRef, cmpMeta);
1299
1365
  }
1300
1366
  }
1367
+ else {
1368
+ // fire off connectedCallback() on component instance
1369
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) ;
1370
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1371
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
1372
+ }
1373
+ }
1301
1374
  endConnected();
1302
1375
  }
1303
1376
  };
1304
- const disconnectedCallback = (elm) => {
1377
+ const disconnectInstance = (instance) => {
1378
+ };
1379
+ const disconnectedCallback = async (elm) => {
1305
1380
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1306
- getHostRef(elm);
1381
+ const hostRef = getHostRef(elm);
1382
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) ;
1383
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1384
+ hostRef.$onReadyPromise$.then(() => disconnectInstance());
1385
+ }
1307
1386
  }
1308
1387
  };
1309
1388
  const bootstrapLazy = (lazyBundles, options = {}) => {
@@ -1,5 +1,5 @@
1
- import { b as bootstrapLazy } from './index-e3a0f2dc.js';
2
- export { s as setNonce } from './index-e3a0f2dc.js';
1
+ import { b as bootstrapLazy } from './index-e37a05ee.js';
2
+ export { s as setNonce } from './index-e37a05ee.js';
3
3
 
4
4
  const defineCustomElements = (win, options) => {
5
5
  if (typeof window === 'undefined') return undefined;
@@ -1,8 +1,8 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-e3a0f2dc.js';
2
- export { s as setNonce } from './index-e3a0f2dc.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-e37a05ee.js';
2
+ export { s as setNonce } from './index-e37a05ee.js';
3
3
 
4
4
  /*
5
- Stencil Client Patch Browser v4.0.2 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Patch Browser v4.0.3 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
  const patchBrowser = () => {
8
8
  const importMeta = import.meta.url;
@@ -1,4 +1,4 @@
1
- import { h, g as getRenderingRef, f as forceUpdate, r as registerInstance } from './index-e3a0f2dc.js';
1
+ import { h, g as getRenderingRef, f as forceUpdate, r as registerInstance } from './index-e37a05ee.js';
2
2
 
3
3
  const Alien = props => {
4
4
  const hex = props.hex || 'currentColor';
@@ -1,2 +1,2 @@
1
- import{h as t,g as e,f as r,r as o}from"./p-6b56583e.js";const s=e=>{const r=e.hex||"currentColor",o=e.size||24;return t("svg",{class:e.class,width:o,height:o,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"alien"),t("g",{fill:r},t("path",{d:"M10.31 10.93C11.33 12.57 11.18 14.5 9.96 15.28C8.74 16.04 6.92 15.33\n 5.89 13.69C4.87 12.05 5.03 10.1 6.25 9.34C7.47 8.58 9.29 9.29 10.31\n 10.93M12 17.75C14 17.75 14.5 17 14.5 17C14.5 17 14 19 12 19C10 19 9.5\n 17.03 9.5 17C9.5 17 10 17.75 12 17.75M17.75 9.34C18.97 10.1 19.13 12.05\n 18.11 13.69C17.08 15.33 15.26 16.04 14.04 15.28C12.82 14.5 12.67 12.57\n 13.69 10.93C14.71 9.29 16.53 8.58 17.75 9.34M12 20C14.5 20 20 14.86 20\n 11C20 7.14 16.41 4 12 4C7.59 4 4 7.14 4 11C4 14.86 9.5 20 12 20M12 2C17.5\n 2 22 6.04 22 11C22 15.08 16.32 22 12 22C7.68 22 2 15.08 2 11C2 6.04 6.5 2\n 12 2Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},n="proto-sudoku",a=`${n}::data`,i=`${n}::inputs`,l=`${n}::pick`,c=t=>{const e=localStorage.getItem(t);return e?JSON.parse(e):void 0},d=(t,e)=>{const r=JSON.stringify(e);localStorage.setItem(t,r)},h=()=>[...c(i)],f=t=>{d(i,t.join(""))},u=()=>{const t=c(l);return null!==t?t:void 0},b=t=>{d(l,t>=0&&t<81?t:null)},p="Check ?",g="New Puzzle",w=t=>!("isConnected"in t)||t.isConnected,m=(()=>{let t;return(...e)=>{t&&clearTimeout(t),t=setTimeout((()=>{t=0,(t=>{for(let e of t.keys())t.set(e,t.get(e).filter(w))})(...e)}),2e3)}})(),y=t=>"function"==typeof t?t():t;class x extends Error{constructor(t,e,r){const o=`${t.status||0===t.status?t.status:""} ${t.statusText||""}`.trim();super("Request failed with "+(o?`status code ${o}`:"an unknown error")),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=e,this.options=r}}class v extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}}const C=t=>null!==t&&"object"==typeof t,k=(...t)=>{for(const e of t)if((!C(e)||Array.isArray(e))&&void 0!==e)throw new TypeError("The `options` argument must be an object");return M({},...t)},T=(t={},e={})=>{const r=new globalThis.Headers(t),o=e instanceof globalThis.Headers,s=new globalThis.Headers(e);for(const[t,e]of s.entries())o&&"undefined"===e||void 0===e?r.delete(t):r.set(t,e);return r},M=(...t)=>{let e={},r={};for(const o of t)if(Array.isArray(o))Array.isArray(e)||(e=[]),e=[...e,...o];else if(C(o)){for(let[t,r]of Object.entries(o))C(r)&&t in e&&(r=M(e[t],r)),e={...e,[t]:r};C(o.headers)&&(r=T(r,o.headers),e.headers=r)}return e},j=(()=>{let t=!1,e=!1;const r="function"==typeof globalThis.ReadableStream,o="function"==typeof globalThis.Request;return r&&o&&(e=new globalThis.Request("https://a.com",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type")),t&&!e})(),R="function"==typeof globalThis.AbortController,S="function"==typeof globalThis.ReadableStream,z="function"==typeof globalThis.FormData,E=["get","post","put","patch","head","delete"],A={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},O=2147483647,B=Symbol("stop"),U=t=>E.includes(t)?t.toUpperCase():t,N=[413,429,503],P={limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:N,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY},q=(t={})=>{if("number"==typeof t)return{...P,limit:t};if(t.methods&&!Array.isArray(t.methods))throw new Error("retry.methods must be an array");if(t.statusCodes&&!Array.isArray(t.statusCodes))throw new Error("retry.statusCodes must be an array");return{...P,...t,afterStatusCodes:N}},_=Boolean(globalThis.DOMException);function D(t){if(_)return new DOMException(t?.reason??"The operation was aborted.","AbortError");const e=new Error(t?.reason??"The operation was aborted.");return e.name="AbortError",e}class H{static create(t,e){const r=new H(t,e),o=async()=>{if(r._options.timeout>O)throw new RangeError("The `timeout` option cannot be greater than 2147483647");await Promise.resolve();let t=await r._fetch();for(const e of r._options.hooks.afterResponse){const o=await e(r.request,r._options,r._decorateResponse(t.clone()));o instanceof globalThis.Response&&(t=o)}if(r._decorateResponse(t),!t.ok&&r._options.throwHttpErrors){let e=new x(t,r.request,r._options);for(const t of r._options.hooks.beforeError)e=await t(e);throw e}if(r._options.onDownloadProgress){if("function"!=typeof r._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!S)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return r._stream(t.clone(),r._options.onDownloadProgress)}return t},s=r._options.retry.methods.includes(r.request.method.toLowerCase())?r._retry(o):o();for(const[t,o]of Object.entries(A))s[t]=async()=>{r.request.headers.set("accept",r.request.headers.get("accept")||o);const n=(await s).clone();if("json"===t){if(204===n.status)return"";if(0===(await n.clone().arrayBuffer()).byteLength)return"";if(e.parseJson)return e.parseJson(await n.text())}return n[t]()};return s}constructor(t,e={}){if(Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t,this._options={credentials:this._input.credentials||"same-origin",...e,headers:T(this._input.headers,e.headers),hooks:M({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},e.hooks),method:U(e.method??this._input.method),prefixUrl:String(e.prefixUrl||""),retry:q(e.retry),throwHttpErrors:!1!==e.throwHttpErrors,timeout:void 0===e.timeout?1e4:e.timeout,fetch:e.fetch??globalThis.fetch.bind(globalThis)},"string"!=typeof this._input&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&"string"==typeof this._input){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(R){if(this.abortController=new globalThis.AbortController,this._options.signal){const t=this._options.signal;this._options.signal.addEventListener("abort",(()=>{this.abortController.abort(t.reason)}))}this._options.signal=this.abortController.signal}if(j&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const t="string"==typeof this._options.searchParams?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString(),e=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,"?"+t);!(z&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)||this._options.headers&&this._options.headers["content-type"]||this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(e,{...this.request}),this._options)}void 0!==this._options.json&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<this._options.retry.limit&&!(t instanceof v)){if(t instanceof x){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;const e=t.response.headers.get("Retry-After");if(e&&this._options.retry.afterStatusCodes.includes(t.response.status)){let t=Number(e);return Number.isNaN(t)?t=Date.parse(e)-Date.now():t*=1e3,void 0!==this._options.retry.maxRetryAfter&&t>this._options.retry.maxRetryAfter?0:t}if(413===t.response.status)return 0}return Math.min(this._options.retry.backoffLimit,.3*2**(this._retryCount-1)*1e3)}return 0}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(e){const r=Math.min(this._calculateRetryDelay(e),O);if(0!==r&&this._retryCount>0){await async function(t,{signal:e}){return new Promise(((r,o)=>{if(e){if(e.aborted)return void o(D(e));e.addEventListener("abort",s,{once:!0})}function s(){o(D(e)),clearTimeout(n)}const n=setTimeout((()=>{e?.removeEventListener("abort",s),r()}),t)}))}(r,{signal:this._options.signal});for(const t of this._options.hooks.beforeRetry)if(await t({request:this.request,options:this._options,error:e,retryCount:this._retryCount})===B)return;return this._retry(t)}throw e}}async _fetch(){for(const t of this._options.hooks.beforeRequest){const e=await t(this.request,this._options);if(e instanceof Request){this.request=e;break}if(e instanceof Response)return e}return!1===this._options.timeout?this._options.fetch(this.request.clone()):async function(t,e,r){return new Promise(((o,s)=>{const n=setTimeout((()=>{e&&e.abort(),s(new v(t))}),r.timeout);r.fetch(t).then(o).catch(s).then((()=>{clearTimeout(n)}))}))}(this.request.clone(),this.abortController,this._options)}_stream(t,e){const r=Number(t.headers.get("content-length"))||0;let o=0;return 204===t.status?(e&&e({percent:1,totalBytes:r,transferredBytes:o},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(s){const n=t.body.getReader();e&&e({percent:0,transferredBytes:0,totalBytes:r},new Uint8Array),await async function t(){const{done:a,value:i}=await n.read();a?s.close():(e&&(o+=i.byteLength,e({percent:0===r?0:o/r,transferredBytes:o,totalBytes:r},i)),s.enqueue(i),await t())}()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}}
1
+ import{h as t,g as e,f as r,r as o}from"./p-6767e55d.js";const s=e=>{const r=e.hex||"currentColor",o=e.size||24;return t("svg",{class:e.class,width:o,height:o,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"alien"),t("g",{fill:r},t("path",{d:"M10.31 10.93C11.33 12.57 11.18 14.5 9.96 15.28C8.74 16.04 6.92 15.33\n 5.89 13.69C4.87 12.05 5.03 10.1 6.25 9.34C7.47 8.58 9.29 9.29 10.31\n 10.93M12 17.75C14 17.75 14.5 17 14.5 17C14.5 17 14 19 12 19C10 19 9.5\n 17.03 9.5 17C9.5 17 10 17.75 12 17.75M17.75 9.34C18.97 10.1 19.13 12.05\n 18.11 13.69C17.08 15.33 15.26 16.04 14.04 15.28C12.82 14.5 12.67 12.57\n 13.69 10.93C14.71 9.29 16.53 8.58 17.75 9.34M12 20C14.5 20 20 14.86 20\n 11C20 7.14 16.41 4 12 4C7.59 4 4 7.14 4 11C4 14.86 9.5 20 12 20M12 2C17.5\n 2 22 6.04 22 11C22 15.08 16.32 22 12 22C7.68 22 2 15.08 2 11C2 6.04 6.5 2\n 12 2Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},n="proto-sudoku",a=`${n}::data`,i=`${n}::inputs`,l=`${n}::pick`,c=t=>{const e=localStorage.getItem(t);return e?JSON.parse(e):void 0},d=(t,e)=>{const r=JSON.stringify(e);localStorage.setItem(t,r)},h=()=>[...c(i)],f=t=>{d(i,t.join(""))},u=()=>{const t=c(l);return null!==t?t:void 0},b=t=>{d(l,t>=0&&t<81?t:null)},p="Check ?",g="New Puzzle",w=t=>!("isConnected"in t)||t.isConnected,m=(()=>{let t;return(...e)=>{t&&clearTimeout(t),t=setTimeout((()=>{t=0,(t=>{for(let e of t.keys())t.set(e,t.get(e).filter(w))})(...e)}),2e3)}})(),y=t=>"function"==typeof t?t():t;class x extends Error{constructor(t,e,r){const o=`${t.status||0===t.status?t.status:""} ${t.statusText||""}`.trim();super("Request failed with "+(o?`status code ${o}`:"an unknown error")),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=e,this.options=r}}class v extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}}const C=t=>null!==t&&"object"==typeof t,k=(...t)=>{for(const e of t)if((!C(e)||Array.isArray(e))&&void 0!==e)throw new TypeError("The `options` argument must be an object");return M({},...t)},T=(t={},e={})=>{const r=new globalThis.Headers(t),o=e instanceof globalThis.Headers,s=new globalThis.Headers(e);for(const[t,e]of s.entries())o&&"undefined"===e||void 0===e?r.delete(t):r.set(t,e);return r},M=(...t)=>{let e={},r={};for(const o of t)if(Array.isArray(o))Array.isArray(e)||(e=[]),e=[...e,...o];else if(C(o)){for(let[t,r]of Object.entries(o))C(r)&&t in e&&(r=M(e[t],r)),e={...e,[t]:r};C(o.headers)&&(r=T(r,o.headers),e.headers=r)}return e},j=(()=>{let t=!1,e=!1;const r="function"==typeof globalThis.ReadableStream,o="function"==typeof globalThis.Request;return r&&o&&(e=new globalThis.Request("https://a.com",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type")),t&&!e})(),R="function"==typeof globalThis.AbortController,S="function"==typeof globalThis.ReadableStream,z="function"==typeof globalThis.FormData,E=["get","post","put","patch","head","delete"],A={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},O=2147483647,B=Symbol("stop"),U=t=>E.includes(t)?t.toUpperCase():t,N=[413,429,503],P={limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:N,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY},q=(t={})=>{if("number"==typeof t)return{...P,limit:t};if(t.methods&&!Array.isArray(t.methods))throw new Error("retry.methods must be an array");if(t.statusCodes&&!Array.isArray(t.statusCodes))throw new Error("retry.statusCodes must be an array");return{...P,...t,afterStatusCodes:N}},_=Boolean(globalThis.DOMException);function D(t){if(_)return new DOMException(t?.reason??"The operation was aborted.","AbortError");const e=new Error(t?.reason??"The operation was aborted.");return e.name="AbortError",e}class H{static create(t,e){const r=new H(t,e),o=async()=>{if(r._options.timeout>O)throw new RangeError("The `timeout` option cannot be greater than 2147483647");await Promise.resolve();let t=await r._fetch();for(const e of r._options.hooks.afterResponse){const o=await e(r.request,r._options,r._decorateResponse(t.clone()));o instanceof globalThis.Response&&(t=o)}if(r._decorateResponse(t),!t.ok&&r._options.throwHttpErrors){let e=new x(t,r.request,r._options);for(const t of r._options.hooks.beforeError)e=await t(e);throw e}if(r._options.onDownloadProgress){if("function"!=typeof r._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!S)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return r._stream(t.clone(),r._options.onDownloadProgress)}return t},s=r._options.retry.methods.includes(r.request.method.toLowerCase())?r._retry(o):o();for(const[t,o]of Object.entries(A))s[t]=async()=>{r.request.headers.set("accept",r.request.headers.get("accept")||o);const n=(await s).clone();if("json"===t){if(204===n.status)return"";if(0===(await n.clone().arrayBuffer()).byteLength)return"";if(e.parseJson)return e.parseJson(await n.text())}return n[t]()};return s}constructor(t,e={}){if(Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t,this._options={credentials:this._input.credentials||"same-origin",...e,headers:T(this._input.headers,e.headers),hooks:M({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},e.hooks),method:U(e.method??this._input.method),prefixUrl:String(e.prefixUrl||""),retry:q(e.retry),throwHttpErrors:!1!==e.throwHttpErrors,timeout:void 0===e.timeout?1e4:e.timeout,fetch:e.fetch??globalThis.fetch.bind(globalThis)},"string"!=typeof this._input&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&"string"==typeof this._input){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(R){if(this.abortController=new globalThis.AbortController,this._options.signal){const t=this._options.signal;this._options.signal.addEventListener("abort",(()=>{this.abortController.abort(t.reason)}))}this._options.signal=this.abortController.signal}if(j&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const t="string"==typeof this._options.searchParams?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString(),e=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,"?"+t);!(z&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)||this._options.headers&&this._options.headers["content-type"]||this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(e,{...this.request}),this._options)}void 0!==this._options.json&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<this._options.retry.limit&&!(t instanceof v)){if(t instanceof x){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;const e=t.response.headers.get("Retry-After");if(e&&this._options.retry.afterStatusCodes.includes(t.response.status)){let t=Number(e);return Number.isNaN(t)?t=Date.parse(e)-Date.now():t*=1e3,void 0!==this._options.retry.maxRetryAfter&&t>this._options.retry.maxRetryAfter?0:t}if(413===t.response.status)return 0}return Math.min(this._options.retry.backoffLimit,.3*2**(this._retryCount-1)*1e3)}return 0}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(e){const r=Math.min(this._calculateRetryDelay(e),O);if(0!==r&&this._retryCount>0){await async function(t,{signal:e}){return new Promise(((r,o)=>{if(e){if(e.aborted)return void o(D(e));e.addEventListener("abort",s,{once:!0})}function s(){o(D(e)),clearTimeout(n)}const n=setTimeout((()=>{e?.removeEventListener("abort",s),r()}),t)}))}(r,{signal:this._options.signal});for(const t of this._options.hooks.beforeRetry)if(await t({request:this.request,options:this._options,error:e,retryCount:this._retryCount})===B)return;return this._retry(t)}throw e}}async _fetch(){for(const t of this._options.hooks.beforeRequest){const e=await t(this.request,this._options);if(e instanceof Request){this.request=e;break}if(e instanceof Response)return e}return!1===this._options.timeout?this._options.fetch(this.request.clone()):async function(t,e,r){return new Promise(((o,s)=>{const n=setTimeout((()=>{e&&e.abort(),s(new v(t))}),r.timeout);r.fetch(t).then(o).catch(s).then((()=>{clearTimeout(n)}))}))}(this.request.clone(),this.abortController,this._options)}_stream(t,e){const r=Number(t.headers.get("content-length"))||0;let o=0;return 204===t.status?(e&&e({percent:1,totalBytes:r,transferredBytes:o},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(s){const n=t.body.getReader();e&&e({percent:0,transferredBytes:0,totalBytes:r},new Uint8Array),await async function t(){const{done:a,value:i}=await n.read();a?s.close():(e&&(o+=i.byteLength,e({percent:0===r?0:o/r,transferredBytes:o,totalBytes:r},i)),s.enqueue(i),await t())}()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}}
2
2
  /*! MIT License © Sindre Sorhus */const $=t=>{const e=(e,r)=>H.create(e,k(t,r));for(const r of E)e[r]=(e,o)=>H.create(e,k(t,o,{method:r}));return e.create=t=>$(k(t)),e.extend=e=>$(k(t,e)),e.stop=B,e},L=$(),I={list:[],keys:[],locs:[],loading:!1,solved:!1,error:void 0,pick:void 0,data:void 0},{state:J}=(()=>{const t=((t,e=((t,e)=>t!==e))=>{const r=y(t);let o=new Map(Object.entries(null!=r?r:{}));const s={dispose:[],get:[],set:[],reset:[]},n=()=>{var e;o=new Map(Object.entries(null!==(e=y(t))&&void 0!==e?e:{})),s.reset.forEach((t=>t()))},a=t=>(s.get.forEach((e=>e(t))),o.get(t)),i=(t,r)=>{const n=o.get(t);e(r,n,t)&&(o.set(t,r),s.set.forEach((e=>e(t,r,n))))},l="undefined"==typeof Proxy?{}:new Proxy(r,{get:(t,e)=>a(e),ownKeys:()=>Array.from(o.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(t,e)=>o.has(e),set:(t,e,r)=>(i(e,r),!0)}),c=(t,e)=>(s[t].push(e),()=>{((t,e)=>{const r=t.indexOf(e);r>=0&&(t[r]=t[t.length-1],t.length--)})(s[t],e)});return{state:l,get:a,set:i,on:c,onChange:(e,r)=>{const o=c("set",((t,o)=>{t===e&&r(o)})),s=c("reset",(()=>r(y(t)[e])));return()=>{o(),s()}},use:(...t)=>{const e=t.reduce(((t,e)=>(e.set&&t.push(c("set",e.set)),e.get&&t.push(c("get",e.get)),e.reset&&t.push(c("reset",e.reset)),e.dispose&&t.push(c("dispose",e.dispose)),t)),[]);return()=>e.forEach((t=>t()))},dispose:()=>{s.dispose.forEach((t=>t())),n()},reset:n,forceUpdate:t=>{const e=o.get(t);s.set.forEach((r=>r(t,e,e)))}}})(I,void 0);return t.use((()=>{if("function"!=typeof e)return{};const t=new Map;return{dispose:()=>t.clear(),get:r=>{const o=e();o&&((t,e,r)=>{const o=t.get(e);o?o.includes(r)||o.push(r):t.set(e,[r])})(t,r,o)},set:e=>{const o=t.get(e);o&&t.set(e,o.filter(r)),m(t)},reset:()=>{t.forEach((t=>t.forEach(r))),m(t)}}})()),t})(),W=new Map([["row",new Map],["column",new Map],["box",new Map]]),X=["1","2","3","4","5","6","7","8","9"],Z=t=>{if(void 0!==t&&t.indx!=J.pick){const{isClue:e,indx:r,row:o,column:s,box:n}=t,a=((t,e,r,o)=>{const s=new Map([["row",e],["column",r],["box",o]]),n=new Set;return s.forEach(((e,r)=>{W.get(r).get(e).forEach((e=>{e!==t&&n.add(e)}))})),Array.from(n)})(r,o,s,n),i=e?[]:(t=>{const{list:e}=J,r=new Set;return t.map((t=>{const{key:o}=e[t];"."!=o&&r.add(o)})),X.filter((t=>!r.has(t)))})(a);J.pick=r,J.keys=i,J.locs=a}else J.pick=void 0,J.keys=[],J.locs=[];Y(J.pick)};let F;const K={netlify:"/.netlify/functions",vercel:"https://sudoku-rust-api.vercel.app/api"},V=t=>{f(t)},Y=t=>{b(t)},G=(t=!1)=>{J.list=[],J.keys=[],J.locs=[],J.loading=t,J.solved=!1,J.error=void 0,J.pick=void 0,J.data=void 0},Q=(t,e=!0)=>{const{puzzle:r,ref:o}=t;e&&(f([]),d(a,t)),(t=>{if(t){const{puzzle:e,ref:r}=t,o=e?[...e]:[],s=r?atob(r):void 0,n=s?[...s]:[],a=o.map(((t,e)=>{const r=n[e],o=t===r,s=Math.floor(e/9),a=e%9,i=((t,e)=>e<3?t<3?0:t<6?3:6:e<6?t<3?1:t<6?4:7:t<3?2:t<6?5:8)(s,a);return((t,e,r,o)=>{new Map([["row",e],["column",r],["box",o]]).forEach(((e,r)=>{const o=W.get(r);o.has(e)?o.get(e).add(t):o.set(e,new Set([t]))}))})(e,s,a,i),{key:t,isClue:o,value:r,indx:e,row:s,column:a,box:i}}));(t=>{h().forEach(((e,r)=>{const o=t[r],{isClue:s}=o;s||(o.key=e)}))})(a),J.data=t,J.list=a}else J.data=void 0,J.list=[]})({puzzle:r,ref:o})},tt=t=>{J.list=[...t],t.length=0},et={initApp:t=>{(t=>{const e=(t=>{const e=Object.keys(K).includes(t)?t:"vercel";return K[e]})(t);F=L.extend({hooks:{beforeRequest:[t=>{t.headers.set("X-Requested-With","ky"),t.headers.set("X-Custom-Header","foobar")}]},prefixUrl:e,timeout:1e4})})(t),G();const e=c(a),r=u();if(e&&(Q(e,!1),r>=0)){const{list:t}=J;Z(t[r])}},refresh:async()=>{G(!0),V([]),Y(J.pick);try{const t=await F.get("puzzle").json();Q(t)}catch(t){const{message:e}=t;console.log("-- ",e),console.log(t),J.error=e}finally{J.loading=!1}},select:t=>{Z(t)},check:()=>{const{list:t}=J,e=[];let r=0,o=0,s=0;t.forEach((t=>{const{key:n,value:a,isClue:i}=t;i?s+=1:"."!==n&&(n!==a?(r+=1,t.key="."):o+=1),e.push(t.key)}));const n=s+o;V(o?e:[]),r>0?tt(t):81===n&&(J.solved=!0)},input:t=>{const{pick:e,list:r}=J;r[e].key=t,tt(r)}},rt=(...t)=>t.filter(Boolean).join(" "),ot=e=>{const r=e.hex||"currentColor",o=e.label||"loading...",s=e.size||24;return t("svg",{class:rt(e.class||"","animate-spin"),width:s,height:s,fill:"none",viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,o),t("g",null,t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:r,"stroke-width":"4"}),t("path",{class:"opacity-75",fill:r,d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},st=e=>{const{message:r,salute:o,spinner:n=!1}=e;return t("div",{class:"mt-5 flex h-24px flex-row items-center"},t(n?ot:s,{class:"mr-2"}),o?t("label",{class:"mr-1 font-bold"},o,":"):"",t("label",{class:"italic"},r))},nt=()=>{const{solved:e,loading:r,error:o}=J;return t("div",{class:"flex flex-col"},r||o||e?"":t(st,{message:"Welcome, are you ready to play?..."}),r?t(st,{message:"Loading...",spinner:!0}):"",o?t(st,{message:o,salute:"ERROR"}):"",e?t(st,{message:"You solved the puzzle!!"}):"")},at=e=>{const r=e.hex||"currentColor",o=e.size||24;return t("svg",{class:e.class,width:o,height:o,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"fingerprint"),t("g",{fill:r},t("path",{d:"M17.81,4.47C17.73,4.47 17.65,4.45 17.58,4.41C15.66,3.42 14,3\n 12,3C10.03,3 8.15,3.47 6.44,4.41C6.2,4.54 5.9,4.45 5.76,4.21C5.63,3.97\n 5.72,3.66 5.96,3.53C7.82,2.5 9.86,2 12,2C14.14,2 16,2.47\n 18.04,3.5C18.29,3.65 18.38,3.95 18.25,4.19C18.16,4.37 18,4.47\n 17.81,4.47M3.5,9.72C3.4,9.72 3.3,9.69 3.21,9.63C3,9.47 2.93,9.16\n 3.09,8.93C4.08,7.53 5.34,6.43 6.84,5.66C10,4.04 14,4.03\n 17.15,5.65C18.65,6.42 19.91,7.5 20.9,8.9C21.06,9.12 21,9.44\n 20.78,9.6C20.55,9.76 20.24,9.71 20.08,9.5C19.18,8.22 18.04,7.23\n 16.69,6.54C13.82,5.07 10.15,5.07 7.29,6.55C5.93,7.25 4.79,8.25\n 3.89,9.5C3.81,9.65 3.66,9.72 3.5,9.72M9.75,21.79C9.62,21.79 9.5,21.74\n 9.4,21.64C8.53,20.77 8.06,20.21 7.39,19C6.7,17.77 6.34,16.27\n 6.34,14.66C6.34,11.69 8.88,9.27 12,9.27C15.12,9.27 17.66,11.69\n 17.66,14.66A0.5,0.5 0 0,1 17.16,15.16A0.5,0.5 0 0,1\n 16.66,14.66C16.66,12.24 14.57,10.27 12,10.27C9.43,10.27 7.34,12.24\n 7.34,14.66C7.34,16.1 7.66,17.43 8.27,18.5C8.91,19.66 9.35,20.15\n 10.12,20.93C10.31,21.13 10.31,21.44 10.12,21.64C10,21.74 9.88,21.79\n 9.75,21.79M16.92,19.94C15.73,19.94 14.68,19.64 13.82,19.05C12.33,18.04\n 11.44,16.4 11.44,14.66A0.5,0.5 0 0,1 11.94,14.16A0.5,0.5 0 0,1\n 12.44,14.66C12.44,16.07 13.16,17.4 14.38,18.22C15.09,18.7 15.92,18.93\n 16.92,18.93C17.16,18.93 17.56,18.9 17.96,18.83C18.23,18.78 18.5,18.96\n 18.54,19.24C18.59,19.5 18.41,19.77 18.13,19.82C17.56,19.93 17.06,19.94\n 16.92,19.94M14.91,22C14.87,22 14.82,22 14.78,22C13.19,21.54 12.15,20.95\n 11.06,19.88C9.66,18.5 8.89,16.64 8.89,14.66C8.89,13.04 10.27,11.72\n 11.97,11.72C13.67,11.72 15.05,13.04 15.05,14.66C15.05,15.73 16,16.6\n 17.13,16.6C18.28,16.6 19.21,15.73 19.21,14.66C19.21,10.89 15.96,7.83\n 11.96,7.83C9.12,7.83 6.5,9.41 5.35,11.86C4.96,12.67 4.76,13.62\n 4.76,14.66C4.76,15.44 4.83,16.67 5.43,18.27C5.53,18.53 5.4,18.82\n 5.14,18.91C4.88,19 4.59,18.87 4.5,18.62C4,17.31 3.77,16\n 3.77,14.66C3.77,13.46 4,12.37 4.45,11.42C5.78,8.63 8.73,6.82\n 11.96,6.82C16.5,6.82 20.21,10.33 20.21,14.65C20.21,16.27 18.83,17.59\n 17.13,17.59C15.43,17.59 14.05,16.27 14.05,14.65C14.05,13.58 13.12,12.71\n 11.97,12.71C10.82,12.71 9.89,13.58 9.89,14.65C9.89,16.36 10.55,17.96\n 11.76,19.16C12.71,20.1 13.62,20.62 15.03,21C15.3,21.08 15.45,21.36\n 15.38,21.62C15.33,21.85 15.12,22 14.91,22Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},it="eswat2",lt=()=>t("a",{class:"absolute right-0 top-0 text-clrs-gray hover:text-clrs-navy",href:"https://eswat2.dev","aria-label":it,target:"blank",title:it},t(at,{label:it})),ct=(e,r)=>t("h1",{class:rt("text-center uppercase text-clrs-red","mb-11 ml-0 mr-0 mt-11","text-6xl font-thin")},r),dt=e=>{const{label:r,callback:o,matched:s=!1}=e;return t("button",{class:rt("rounded-md border border-solid border-clrs-slate4 font-bold",r===p?"mr-2 bg-clrs-yellow px-3 py-2 text-clrs-navy":r===g?"mr-2 bg-clrs-navy px-3 py-2 text-white":"x"===r?"mr-1 bg-clrs-red px-2 py-1 text-white":s?"mr-1 bg-clrs-slate4 px-2 py-1 text-white":"mr-1 bg-gray-50 px-2 py-1 text-clrs-navy"),onClick:o},r)},ht=()=>{const{keys:e,list:r,pick:o,solved:s}=J,n=t=>()=>{et.input(t)},a=s?[]:e,i=null!=o?r[o]:void 0;return t("div",{class:"mt-2 flex flex-row justify-end"},s||!i||i.isClue||"."==i.key?"":t(dt,{label:"x",callback:n(".")}),a.map((e=>t(dt,{label:e,callback:n(e),matched:i.key===e}))))},ft=[2,5,11,14,20,23,29,32,38,41,47,50,56,59,65,68,74,77],ut=ft.map((t=>t+1)),bt=[18,19,20,21,22,23,24,25,26,45,46,47,48,49,50,51,52,53],pt=bt.map((t=>t+9)),gt=e=>{const{cell:r,focus:o,selected:s,solved:n}=e,{key:a,isClue:i,indx:l}=r,c="."!=a?a:"";return t("label",{class:rt(`cell-${l}`,ft.includes(l)?"border-xbr-clrs-navy":"",ut.includes(l)?"border-xbl-clrs-navy":"",bt.includes(l)?"border-xbb-clrs-navy":"",pt.includes(l)?"border-xbt-clrs-navy":"","h-8 w-8 border border-solid text-center leading-8",s?"border-clrs-red bg-clrs-red-a50 text-clrs-red":o?"border-clrs-gray bg-clrs-green-a50 font-bold":i?"border-clrs-gray bg-clrs-silver":""!==c?"border-clrs-gray text-clrs-red":"border-clrs-gray"),onClick:((t,e)=>()=>{e||et.select(t)})(r,n)},c)},wt=()=>{const{list:e,pick:r,locs:o,solved:s}=J;return t("div",{class:rt("flex flex-row flex-wrap","border border-solid border-clrs-navy","h-76p5 w-76p5 text-lg")},e.map(((e,n)=>{const a=!s&&n===r,i=!s&&o.includes(n);return t(gt,{cell:e,focus:i,selected:a,solved:s})})))},mt=()=>t("label",{class:"ml-auto align-top text-xs italic text-clrs-slate4"},"Tailwind ","3.3.3"),yt=t=>()=>{t.refresh()},xt=t=>()=>{t.check()},vt=()=>{const{list:e,solved:r}=J;return t("div",{class:"flex flex-row"},t(dt,{label:g,callback:yt(et)}),81!==e.length||r?"":t(dt,{label:p,callback:xt(et)}),t(mt,null))},Ct=class{constructor(t){o(this,t),this.tag="proto-sudoku",this.platform="vercel"}componentDidLoad(){et.initApp(this.platform)}render(){return t("div",{id:"app",class:"ds1-main relative max-w-min p-0.5"},t(lt,null),t(ct,null,"Sudoku"),t(wt,null),t(ht,null),t("hr",{class:"ml-0 mr-0"}),t(vt,null),t(nt,null))}};Ct.style="*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}.ds1-main{margin:1.5rem;display:flex;flex-direction:column;font-family:ui-sans-serif,\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n 'Helvetica Neue',\n Arial,\n 'Noto Sans',\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji';color:var(--clrs-navy, #001f3f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.absolute{position:absolute}.relative{position:relative}.right-0{right:0px}.top-0{top:0px}.mb-11{margin-bottom:2.75rem}.ml-0{margin-left:0px}.ml-auto{margin-left:auto}.mr-0{margin-right:0px}.mr-1{margin-right:0.25rem}.mr-2{margin-right:0.5rem}.mt-11{margin-top:2.75rem}.mt-2{margin-top:0.5rem}.mt-5{margin-top:1.25rem}.flex{display:flex}.h-24px{height:24px}.h-76p5{height:19.125rem}.h-8{height:2rem}.w-76p5{width:19.125rem}.w-8{width:2rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.rounded-md{border-radius:0.375rem}.border{border-width:1px}.border-solid{border-style:solid}.border-clrs-gray{border-color:var(--clrs-gray, #aaaaaa)}.border-clrs-navy{border-color:var(--clrs-navy, #001f3f)}.border-clrs-red{border-color:var(--clrs-red, #ff4136)}.border-clrs-slate4{border-color:var(--clrs-slate4, #4e5964)}.bg-clrs-green-a50{background-color:var(--clrs-green-a50, #2ecc4050)}.bg-clrs-navy{background-color:var(--clrs-navy, #001f3f)}.bg-clrs-red{background-color:var(--clrs-red, #ff4136)}.bg-clrs-red-a50{background-color:var(--clrs-red-a50, #ff413650)}.bg-clrs-silver{background-color:var(--clrs-silver, #dddddd)}.bg-clrs-slate4{background-color:var(--clrs-slate4, #4e5964)}.bg-clrs-yellow{background-color:var(--clrs-yellow, #ffdc00)}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.p-0{padding:0px}.p-0\\.5{padding:0.125rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-3{padding-left:0.75rem;padding-right:0.75rem}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.text-center{text-align:center}.align-top{vertical-align:top}.text-6xl{font-size:3.75rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xs{font-size:0.75rem;line-height:1rem}.font-bold{font-weight:700}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-8{line-height:2rem}.text-clrs-gray{color:var(--clrs-gray, #aaaaaa)}.text-clrs-navy{color:var(--clrs-navy, #001f3f)}.text-clrs-red{color:var(--clrs-red, #ff4136)}.text-clrs-slate4{color:var(--clrs-slate4, #4e5964)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-25{opacity:0.25}.opacity-75{opacity:0.75}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),\n 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.border-xbb-clrs-navy{border-bottom:1px solid var(--clrs-navy, #001f3f) !important}.border-xbt-clrs-navy{border-top:1px solid var(--clrs-navy, #001f3f) !important}.border-xbl-clrs-navy{border-left:1px solid var(--clrs-navy, #001f3f) !important}.border-xbr-clrs-navy{border-right:1px solid var(--clrs-navy, #001f3f) !important}.hover\\:text-clrs-navy:hover{color:var(--clrs-navy, #001f3f)}";export{Ct as proto_sudoku}
@@ -0,0 +1,2 @@
1
+ let n,t,e=!1,l=null,o=!1;const s={},i=n=>"object"==(n=typeof n)||"function"===n;function c(n){var t,e,l;return null!==(l=null===(e=null===(t=n.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===e?void 0:e.getAttribute("content"))&&void 0!==l?l:void 0}const r=(n,t,...e)=>{let l=null,o=!1,s=!1;const c=[],r=t=>{for(let e=0;e<t.length;e++)l=t[e],Array.isArray(l)?r(l):null!=l&&"boolean"!=typeof l&&((o="function"!=typeof n&&!i(l))&&(l+=""),o&&s?c[c.length-1].t+=l:c.push(o?u(null,l):l),s=o)};if(r(e),t){const n=t.className||t.class;n&&(t.class="object"!=typeof n?n:Object.keys(n).filter((t=>n[t])).join(" "))}if("function"==typeof n)return n(null===t?{}:t,c,f);const a=u(n,null);return a.l=t,c.length>0&&(a.o=c),a},u=(n,t)=>({i:0,u:n,t,h:null,o:null,l:null}),a={},f={forEach:(n,t)=>n.map(d).forEach(t),map:(n,t)=>n.map(d).map(t).map(y)},d=n=>({vattrs:n.l,vchildren:n.o,vkey:n.p,vname:n.v,vtag:n.u,vtext:n.t}),y=n=>{if("function"==typeof n.vtag){const t=Object.assign({},n.vattrs);return n.vkey&&(t.key=n.vkey),n.vname&&(t.name=n.vname),r(n.vtag,t,...n.vchildren||[])}const t=u(n.vtag,n.vtext);return t.l=n.vattrs,t.o=n.vchildren,t.p=n.vkey,t.v=n.vname,t},h=new WeakMap,p=n=>"sc-"+n.m,v=(n,t,e,l,o,s)=>{if(e!==l){let c=B(n,t),r=t.toLowerCase();if("class"===t){const t=n.classList,o=$(e),s=$(l);t.remove(...o.filter((n=>n&&!s.includes(n)))),t.add(...s.filter((n=>n&&!o.includes(n))))}else if(c||"o"!==t[0]||"n"!==t[1]){const r=i(l);if((c||r&&null!==l)&&!o)try{if(n.tagName.includes("-"))n[t]=l;else{const o=null==l?"":l;"list"===t?c=!1:null!=e&&n[t]==o||(n[t]=o)}}catch(n){}null==l||!1===l?!1===l&&""!==n.getAttribute(t)||n.removeAttribute(t):(!c||4&s||o)&&!r&&n.setAttribute(t,l=!0===l?"":l)}else t="-"===t[2]?t.slice(3):B(Q,r)?r.slice(2):r[2]+t.slice(3),e&&Y.rel(n,t,e,!1),l&&Y.ael(n,t,l,!1)}},m=/\s/,$=n=>n?n.split(m):[],w=(n,t,e,l)=>{const o=11===t.h.nodeType&&t.h.host?t.h.host:t.h,i=n&&n.l||s,c=t.l||s;for(l in i)l in c||v(o,l,i[l],void 0,e,t.i);for(l in c)v(o,l,i[l],c[l],e,t.i)},b=(t,l,o)=>{const s=l.o[o];let i,c,r=0;if(null!==s.t)i=s.h=X.createTextNode(s.t);else{if(e||(e="svg"===s.u),i=s.h=X.createElementNS(e?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",s.u),e&&"foreignObject"===s.u&&(e=!1),w(null,s,e),null!=n&&i["s-si"]!==n&&i.classList.add(i["s-si"]=n),s.o)for(r=0;r<s.o.length;++r)c=b(t,s,r),c&&i.appendChild(c);"svg"===s.u?e=!1:"foreignObject"===i.tagName&&(e=!0)}return i},g=(n,e,l,o,s,i)=>{let c,r=n;for(r.shadowRoot&&r.tagName===t&&(r=r.shadowRoot);s<=i;++s)o[s]&&(c=b(null,l,s),c&&(o[s].h=c,r.insertBefore(c,e)))},j=(n,t,e)=>{for(let l=t;l<=e;++l){const t=n[l];if(t){const n=t.h;n&&n.remove()}}},S=(n,t)=>n.u===t.u,O=(n,t)=>{const l=t.h=n.h,o=n.o,s=t.o,i=t.u,c=t.t;null===c?(e="svg"===i||"foreignObject"!==i&&e,w(n,t,e),null!==o&&null!==s?((n,t,e,l)=>{let o,s=0,i=0,c=t.length-1,r=t[0],u=t[c],a=l.length-1,f=l[0],d=l[a];for(;s<=c&&i<=a;)null==r?r=t[++s]:null==u?u=t[--c]:null==f?f=l[++i]:null==d?d=l[--a]:S(r,f)?(O(r,f),r=t[++s],f=l[++i]):S(u,d)?(O(u,d),u=t[--c],d=l[--a]):S(r,d)?(O(r,d),n.insertBefore(r.h,u.h.nextSibling),r=t[++s],d=l[--a]):S(u,f)?(O(u,f),n.insertBefore(u.h,r.h),u=t[--c],f=l[++i]):(o=b(t&&t[i],e,i),f=l[++i],o&&r.h.parentNode.insertBefore(o,r.h));s>c?g(n,null==l[a+1]?null:l[a+1].h,e,l,i,a):i>a&&j(t,s,c)})(l,o,t,s):null!==s?(null!==n.t&&(l.textContent=""),g(l,null,t,s,0,s.length-1)):null!==o&&j(o,0,o.length-1),e&&"svg"===i&&(e=!1)):n.t!==c&&(l.data=c)},k=(n,t)=>{t&&!n.$&&t["s-p"]&&t["s-p"].push(new Promise((t=>n.$=t)))},M=(n,t)=>{if(n.i|=16,!(4&n.i))return k(n,n.g),rn((()=>C(n,t)));n.i|=512},C=(n,t)=>{const e=n.j;return x(void 0,(()=>E(n,e,t)))},x=(n,t)=>P(n)?n.then(t):t(),P=n=>n instanceof Promise||n&&n.then&&"function"==typeof n.then,E=async(n,t,e)=>{var l;const o=n.S,s=o["s-rc"];e&&(n=>{const t=n.O,e=n.S,l=t.i,o=((n,t)=>{var e;const l=p(t),o=K.get(l);if(n=11===n.nodeType?n:X,o)if("string"==typeof o){let t,s=h.get(n=n.head||n);if(s||h.set(n,s=new Set),!s.has(l)){{t=X.createElement("style"),t.innerHTML=o;const l=null!==(e=Y.k)&&void 0!==e?e:c(X);null!=l&&t.setAttribute("nonce",l),n.insertBefore(t,n.querySelector("link"))}s&&s.add(l)}}else n.adoptedStyleSheets.includes(o)||(n.adoptedStyleSheets=[...n.adoptedStyleSheets,o]);return l})(e.shadowRoot?e.shadowRoot:e.getRootNode(),t);10&l&&(e["s-sc"]=o,e.classList.add(o+"-h"))})(n);L(n,t,o,e),s&&(s.map((n=>n())),o["s-rc"]=void 0);{const t=null!==(l=o["s-p"])&&void 0!==l?l:[],e=()=>T(n);0===t.length?e():(Promise.all(t).then(e),n.i|=4,t.length=0)}},L=(e,o,s,i)=>{try{l=o,o=o.render(),e.i&=-17,e.i|=2,((e,l,o=!1)=>{const s=e.S,i=e.M||u(null,null),c=(n=>n&&n.u===a)(l)?l:r(null,null,l);if(t=s.tagName,o&&c.l)for(const n of Object.keys(c.l))s.hasAttribute(n)&&!["key","ref","style","class"].includes(n)&&(c.l[n]=s[n]);c.u=null,c.i|=4,e.M=c,c.h=i.h=s.shadowRoot||s,n=s["s-sc"],O(i,c)})(e,o,i)}catch(n){G(n,e.S)}return l=null,null},N=()=>l,T=n=>{const t=n.S,e=n.j,l=n.g;64&n.i||(n.i|=64,W(t),U(e,"componentDidLoad"),n.C(t),l||R()),n.$&&(n.$(),n.$=void 0),512&n.i&&cn((()=>M(n,!1))),n.i&=-517},A=n=>{{const t=V(n),e=t.S.isConnected;return e&&2==(18&t.i)&&M(t,!1),e}},R=()=>{W(X.documentElement),cn((()=>(n=>{const t=Y.ce("appload",{detail:{namespace:"proto-sudoku-wc"}});return n.dispatchEvent(t),t})(Q)))},U=(n,t,e)=>{if(n&&n[t])try{return n[t](e)}catch(n){G(n)}},W=n=>n.classList.add("hydrated"),q=(n,t,e)=>{if(t.P){const l=Object.entries(t.P),o=n.prototype;if(l.map((([n,[l]])=>{(31&l||2&e&&32&l)&&Object.defineProperty(o,n,{get(){return((n,t)=>V(this).L.get(t))(0,n)},set(e){((n,t,e,l)=>{const o=V(n),s=o.L.get(t),c=o.i,r=o.j;e=((n,t)=>null==n||i(n)?n:1&t?n+"":n)(e,l.P[t][0]),8&c&&void 0!==s||e===s||Number.isNaN(s)&&Number.isNaN(e)||(o.L.set(t,e),r&&2==(18&c)&&M(o,!1))})(this,n,e,t)},configurable:!0,enumerable:!0})})),1&e){const t=new Map;o.attributeChangedCallback=function(n,e,l){Y.jmp((()=>{const e=t.get(n);if(this.hasOwnProperty(e))l=this[e],delete this[e];else if(o.hasOwnProperty(e)&&"number"==typeof this[e]&&this[e]==l)return;this[e]=(null!==l||"boolean"!=typeof this[e])&&l}))},n.observedAttributes=l.filter((([n,t])=>15&t[0])).map((([n,e])=>{const l=e[1]||n;return t.set(l,n),l}))}}return n},D=(n,t={})=>{var e;const l=[],o=t.exclude||[],s=Q.customElements,i=X.head,r=i.querySelector("meta[charset]"),u=X.createElement("style"),a=[];let f,d=!0;Object.assign(Y,t),Y.N=new URL(t.resourcesUrl||"./",X.baseURI).href,n.map((n=>{n[1].map((t=>{const e={i:t[0],m:t[1],P:t[2],T:t[3]};e.P=t[2];const i=e.m,c=class extends HTMLElement{constructor(n){super(n),z(n=this,e),1&e.i&&n.attachShadow({mode:"open"})}connectedCallback(){f&&(clearTimeout(f),f=null),d?a.push(this):Y.jmp((()=>(n=>{if(0==(1&Y.i)){const t=V(n),e=t.O,l=()=>{};if(1&t.i)(null==t?void 0:t.j)||(null==t?void 0:t.A)&&t.A.then((()=>{}));else{t.i|=1;{let e=n;for(;e=e.parentNode||e.host;)if(e["s-p"]){k(t,t.g=e);break}}e.P&&Object.entries(e.P).map((([t,[e]])=>{if(31&e&&n.hasOwnProperty(t)){const e=n[t];delete n[t],n[t]=e}})),(async(n,t,e,l,o)=>{if(0==(32&t.i)){t.i|=32;{if((o=J(e)).then){const n=()=>{};o=await o,n()}o.isProxied||(q(o,e,2),o.isProxied=!0);const n=()=>{};t.i|=8;try{new o(t)}catch(n){G(n)}t.i&=-9,n()}if(o.style){let n=o.style;const t=p(e);if(!K.has(t)){const l=()=>{};((n,t,e)=>{let l=K.get(n);nn&&e?(l=l||new CSSStyleSheet,"string"==typeof l?l=t:l.replaceSync(t)):l=t,K.set(n,l)})(t,n,!!(1&e.i)),l()}}}const s=t.g,i=()=>M(t,!0);s&&s["s-rc"]?s["s-rc"].push(i):i()})(0,t,e)}l()}})(this)))}disconnectedCallback(){Y.jmp((()=>(async()=>{if(0==(1&Y.i)){const n=V(this);(null==n?void 0:n.j)||(null==n?void 0:n.A)&&n.A.then((()=>{}))}})()))}componentOnReady(){return V(this).A}};e.R=n[0],o.includes(i)||s.get(i)||(l.push(i),s.define(i,q(c,e,1)))}))}));{u.innerHTML=l+"{visibility:hidden}.hydrated{visibility:inherit}",u.setAttribute("data-styles","");const n=null!==(e=Y.k)&&void 0!==e?e:c(X);null!=n&&u.setAttribute("nonce",n),i.insertBefore(u,r?r.nextSibling:i.firstChild)}d=!1,a.length?a.map((n=>n.connectedCallback())):Y.jmp((()=>f=setTimeout(R,30)))},F=n=>Y.k=n,H=new WeakMap,V=n=>H.get(n),_=(n,t)=>H.set(t.j=n,t),z=(n,t)=>{const e={i:0,S:n,O:t,L:new Map};return e.A=new Promise((n=>e.C=n)),n["s-p"]=[],n["s-rc"]=[],H.set(n,e)},B=(n,t)=>t in n,G=(n,t)=>(0,console.error)(n,t),I=new Map,J=n=>{const t=n.m.replace(/-/g,"_"),e=n.R,l=I.get(e);return l?l[t]:import(`./${e}.entry.js`).then((n=>(I.set(e,n),n[t])),G)
2
+ /*!__STENCIL_STATIC_IMPORT_SWITCH__*/},K=new Map,Q="undefined"!=typeof window?window:{},X=Q.document||{head:{}},Y={i:0,N:"",jmp:n=>n(),raf:n=>requestAnimationFrame(n),ael:(n,t,e,l)=>n.addEventListener(t,e,l),rel:(n,t,e,l)=>n.removeEventListener(t,e,l),ce:(n,t)=>new CustomEvent(n,t)},Z=n=>Promise.resolve(n),nn=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(n){}return!1})(),tn=[],en=[],ln=(n,t)=>e=>{n.push(e),o||(o=!0,t&&4&Y.i?cn(sn):Y.raf(sn))},on=n=>{for(let t=0;t<n.length;t++)try{n[t](performance.now())}catch(n){G(n)}n.length=0},sn=()=>{on(tn),on(en),(o=tn.length>0)&&Y.raf(sn)},cn=n=>Z().then(n),rn=ln(en,!0);export{D as b,A as f,N as g,r as h,Z as p,_ as r,F as s}
@@ -1 +1 @@
1
- import{p as o,b as t}from"./p-6b56583e.js";export{s as setNonce}from"./p-6b56583e.js";(()=>{const t=import.meta.url,e={};return""!==t&&(e.resourcesUrl=new URL(".",t).href),o(e)})().then((o=>t([["p-fc278e87",[[1,"proto-sudoku",{tag:[1],platform:[1]}]]]],o)));
1
+ import{p as o,b as t}from"./p-6767e55d.js";export{s as setNonce}from"./p-6767e55d.js";(()=>{const t=import.meta.url,e={};return""!==t&&(e.resourcesUrl=new URL(".",t).href),o(e)})().then((o=>t([["p-62e0076f",[[1,"proto-sudoku",{tag:[1],platform:[1]}]]]],o)));
@@ -432,7 +432,7 @@ export interface QueueApi {
432
432
  /**
433
433
  * Host
434
434
  */
435
- interface HostAttributes {
435
+ export interface HostAttributes {
436
436
  class?: string | {
437
437
  [className: string]: boolean;
438
438
  };
@@ -930,6 +930,8 @@ export declare namespace JSXBase {
930
930
  minlength?: number | string;
931
931
  multiple?: boolean;
932
932
  name?: string;
933
+ onSelect?: (event: Event) => void;
934
+ onselect?: (event: Event) => void;
933
935
  pattern?: string;
934
936
  placeholder?: string;
935
937
  readOnly?: boolean;
@@ -1143,6 +1145,8 @@ export declare namespace JSXBase {
1143
1145
  minLength?: number;
1144
1146
  minlength?: number | string;
1145
1147
  name?: string;
1148
+ onSelect?: (event: Event) => void;
1149
+ onselect?: (event: Event) => void;
1146
1150
  placeholder?: string;
1147
1151
  readOnly?: boolean;
1148
1152
  readonly?: boolean | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proto-sudoku-wc",
3
- "version": "0.0.644",
3
+ "version": "0.0.646",
4
4
  "description": "prototype - a simple Sudoku app rendered in Stencil and Tailwind",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -27,10 +27,10 @@
27
27
  "format": "prettier --write src"
28
28
  },
29
29
  "dependencies": {
30
- "@stencil/core": "4.0.2",
30
+ "@stencil/core": "4.0.3",
31
31
  "@stencil/store": "2.0.9",
32
32
  "ky": "0.33.3",
33
- "proto-tailwindcss-clrs": "0.0.259",
33
+ "proto-tailwindcss-clrs": "0.0.260",
34
34
  "tailwindcss": "3.3.3"
35
35
  },
36
36
  "devDependencies": {
@@ -38,7 +38,7 @@
38
38
  "concurrently": "8.2.0",
39
39
  "cspell": "6.31.2",
40
40
  "cssnano": "6.0.1",
41
- "eslint": "8.45.0",
41
+ "eslint": "8.46.0",
42
42
  "postcss": "8.4.27",
43
43
  "prettier": "3.0.0",
44
44
  "prettier-plugin-tailwindcss": "0.4.1",
@@ -1,2 +0,0 @@
1
- let t,n,e=!1,l=null,o=!1;const s={},r=t=>"object"==(t=typeof t)||"function"===t;function c(t){var n,e,l;return null!==(l=null===(e=null===(n=t.head)||void 0===n?void 0:n.querySelector('meta[name="csp-nonce"]'))||void 0===e?void 0:e.getAttribute("content"))&&void 0!==l?l:void 0}const i=(t,n,...e)=>{let l=null,o=!1,s=!1;const c=[],i=n=>{for(let e=0;e<n.length;e++)l=n[e],Array.isArray(l)?i(l):null!=l&&"boolean"!=typeof l&&((o="function"!=typeof t&&!r(l))&&(l+=""),o&&s?c[c.length-1].t+=l:c.push(o?u(null,l):l),s=o)};if(i(e),n){const t=n.className||n.class;t&&(n.class="object"!=typeof t?t:Object.keys(t).filter((n=>t[n])).join(" "))}if("function"==typeof t)return t(null===n?{}:n,c,f);const a=u(t,null);return a.l=n,c.length>0&&(a.o=c),a},u=(t,n)=>({i:0,u:t,t:n,p:null,o:null,l:null}),a={},f={forEach:(t,n)=>t.map(d).forEach(n),map:(t,n)=>t.map(d).map(n).map(p)},d=t=>({vattrs:t.l,vchildren:t.o,vkey:t.h,vname:t.m,vtag:t.u,vtext:t.t}),p=t=>{if("function"==typeof t.vtag){const n=Object.assign({},t.vattrs);return t.vkey&&(n.key=t.vkey),t.vname&&(n.name=t.vname),i(t.vtag,n,...t.vchildren||[])}const n=u(t.vtag,t.vtext);return n.l=t.vattrs,n.o=t.vchildren,n.h=t.vkey,n.m=t.vname,n},h=new WeakMap,y=t=>"sc-"+t.$,m=(t,n,e,l,o,s)=>{if(e!==l){let c=B(t,n),i=n.toLowerCase();if("class"===n){const n=t.classList,o=v(e),s=v(l);n.remove(...o.filter((t=>t&&!s.includes(t)))),n.add(...s.filter((t=>t&&!o.includes(t))))}else if(c||"o"!==n[0]||"n"!==n[1]){const i=r(l);if((c||i&&null!==l)&&!o)try{if(t.tagName.includes("-"))t[n]=l;else{const o=null==l?"":l;"list"===n?c=!1:null!=e&&t[n]==o||(t[n]=o)}}catch(t){}null==l||!1===l?!1===l&&""!==t.getAttribute(n)||t.removeAttribute(n):(!c||4&s||o)&&!i&&t.setAttribute(n,l=!0===l?"":l)}else n="-"===n[2]?n.slice(3):B(Q,i)?i.slice(2):i[2]+n.slice(3),e&&Y.rel(t,n,e,!1),l&&Y.ael(t,n,l,!1)}},$=/\s/,v=t=>t?t.split($):[],w=(t,n,e,l)=>{const o=11===n.p.nodeType&&n.p.host?n.p.host:n.p,r=t&&t.l||s,c=n.l||s;for(l in r)l in c||m(o,l,r[l],void 0,e,n.i);for(l in c)m(o,l,r[l],c[l],e,n.i)},b=(n,l,o)=>{const s=l.o[o];let r,c,i=0;if(null!==s.t)r=s.p=X.createTextNode(s.t);else{if(e||(e="svg"===s.u),r=s.p=X.createElementNS(e?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",s.u),e&&"foreignObject"===s.u&&(e=!1),w(null,s,e),null!=t&&r["s-si"]!==t&&r.classList.add(r["s-si"]=t),s.o)for(i=0;i<s.o.length;++i)c=b(n,s,i),c&&r.appendChild(c);"svg"===s.u?e=!1:"foreignObject"===r.tagName&&(e=!0)}return r},g=(t,e,l,o,s,r)=>{let c,i=t;for(i.shadowRoot&&i.tagName===n&&(i=i.shadowRoot);s<=r;++s)o[s]&&(c=b(null,l,s),c&&(o[s].p=c,i.insertBefore(c,e)))},j=(t,n,e)=>{for(let l=n;l<=e;++l){const n=t[l];if(n){const t=n.p;t&&t.remove()}}},S=(t,n)=>t.u===n.u,O=(t,n)=>{const l=n.p=t.p,o=t.o,s=n.o,r=n.u,c=n.t;null===c?(e="svg"===r||"foreignObject"!==r&&e,w(t,n,e),null!==o&&null!==s?((t,n,e,l)=>{let o,s=0,r=0,c=n.length-1,i=n[0],u=n[c],a=l.length-1,f=l[0],d=l[a];for(;s<=c&&r<=a;)null==i?i=n[++s]:null==u?u=n[--c]:null==f?f=l[++r]:null==d?d=l[--a]:S(i,f)?(O(i,f),i=n[++s],f=l[++r]):S(u,d)?(O(u,d),u=n[--c],d=l[--a]):S(i,d)?(O(i,d),t.insertBefore(i.p,u.p.nextSibling),i=n[++s],d=l[--a]):S(u,f)?(O(u,f),t.insertBefore(u.p,i.p),u=n[--c],f=l[++r]):(o=b(n&&n[r],e,r),f=l[++r],o&&i.p.parentNode.insertBefore(o,i.p));s>c?g(t,null==l[a+1]?null:l[a+1].p,e,l,r,a):r>a&&j(n,s,c)})(l,o,n,s):null!==s?(null!==t.t&&(l.textContent=""),g(l,null,n,s,0,s.length-1)):null!==o&&j(o,0,o.length-1),e&&"svg"===r&&(e=!1)):t.t!==c&&(l.data=c)},k=(t,n)=>{n&&!t.v&&n["s-p"]&&n["s-p"].push(new Promise((n=>t.v=n)))},M=(t,n)=>{if(t.i|=16,!(4&t.i))return k(t,t.g),ct((()=>C(t,n)));t.i|=512},C=(t,n)=>{const e=t.j;return x(void 0,(()=>E(t,e,n)))},x=(t,n)=>P(t)?t.then(n):n(),P=t=>t instanceof Promise||t&&t.then&&"function"==typeof t.then,E=async(t,n,e)=>{var l;const o=t.S,s=o["s-rc"];e&&(t=>{const n=t.O,e=t.S,l=n.i,o=((t,n)=>{var e;const l=y(n),o=K.get(l);if(t=11===t.nodeType?t:X,o)if("string"==typeof o){let n,s=h.get(t=t.head||t);if(s||h.set(t,s=new Set),!s.has(l)){{n=X.createElement("style"),n.innerHTML=o;const l=null!==(e=Y.k)&&void 0!==e?e:c(X);null!=l&&n.setAttribute("nonce",l),t.insertBefore(n,t.querySelector("link"))}s&&s.add(l)}}else t.adoptedStyleSheets.includes(o)||(t.adoptedStyleSheets=[...t.adoptedStyleSheets,o]);return l})(e.shadowRoot?e.shadowRoot:e.getRootNode(),n);10&l&&(e["s-sc"]=o,e.classList.add(o+"-h"))})(t);L(t,n),s&&(s.map((t=>t())),o["s-rc"]=void 0);{const n=null!==(l=o["s-p"])&&void 0!==l?l:[],e=()=>T(t);0===n.length?e():(Promise.all(n).then(e),t.i|=4,n.length=0)}},L=(e,o)=>{try{l=o,o=o.render(),e.i&=-17,e.i|=2,((e,l)=>{const o=e.S,s=e.M||u(null,null),r=(t=>t&&t.u===a)(l)?l:i(null,null,l);n=o.tagName,r.u=null,r.i|=4,e.M=r,r.p=s.p=o.shadowRoot||o,t=o["s-sc"],O(s,r)})(e,o)}catch(t){G(t,e.S)}return l=null,null},N=()=>l,T=t=>{const n=t.S,e=t.j,l=t.g;64&t.i||(t.i|=64,W(n),U(e,"componentDidLoad"),t.C(n),l||R()),t.v&&(t.v(),t.v=void 0),512&t.i&&rt((()=>M(t,!1))),t.i&=-517},A=t=>{{const n=V(t),e=n.S.isConnected;return e&&2==(18&n.i)&&M(n,!1),e}},R=()=>{W(X.documentElement),rt((()=>(t=>{const n=Y.ce("appload",{detail:{namespace:"proto-sudoku-wc"}});return t.dispatchEvent(n),n})(Q)))},U=(t,n,e)=>{if(t&&t[n])try{return t[n](e)}catch(t){G(t)}},W=t=>t.classList.add("hydrated"),q=(t,n,e)=>{if(n.P){const l=Object.entries(n.P),o=t.prototype;if(l.map((([t,[l]])=>{(31&l||2&e&&32&l)&&Object.defineProperty(o,t,{get(){return((t,n)=>V(this).L.get(n))(0,t)},set(e){((t,n,e,l)=>{const o=V(t),s=o.L.get(n),c=o.i,i=o.j;e=((t,n)=>null==t||r(t)?t:1&n?t+"":t)(e,l.P[n][0]),8&c&&void 0!==s||e===s||Number.isNaN(s)&&Number.isNaN(e)||(o.L.set(n,e),i&&2==(18&c)&&M(o,!1))})(this,t,e,n)},configurable:!0,enumerable:!0})})),1&e){const n=new Map;o.attributeChangedCallback=function(t,e,l){Y.jmp((()=>{const e=n.get(t);if(this.hasOwnProperty(e))l=this[e],delete this[e];else if(o.hasOwnProperty(e)&&"number"==typeof this[e]&&this[e]==l)return;this[e]=(null!==l||"boolean"!=typeof this[e])&&l}))},t.observedAttributes=l.filter((([t,n])=>15&n[0])).map((([t,e])=>{const l=e[1]||t;return n.set(l,t),l}))}}return t},D=(t,n={})=>{var e;const l=[],o=n.exclude||[],s=Q.customElements,r=X.head,i=r.querySelector("meta[charset]"),u=X.createElement("style"),a=[];let f,d=!0;Object.assign(Y,n),Y.N=new URL(n.resourcesUrl||"./",X.baseURI).href,t.map((t=>{t[1].map((n=>{const e={i:n[0],$:n[1],P:n[2],T:n[3]};e.P=n[2];const r=e.$,c=class extends HTMLElement{constructor(t){super(t),z(t=this,e),1&e.i&&t.attachShadow({mode:"open"})}connectedCallback(){f&&(clearTimeout(f),f=null),d?a.push(this):Y.jmp((()=>(t=>{if(0==(1&Y.i)){const n=V(t),e=n.O,l=()=>{};if(!(1&n.i)){n.i|=1;{let e=t;for(;e=e.parentNode||e.host;)if(e["s-p"]){k(n,n.g=e);break}}e.P&&Object.entries(e.P).map((([n,[e]])=>{if(31&e&&t.hasOwnProperty(n)){const e=t[n];delete t[n],t[n]=e}})),(async(t,n,e,l,o)=>{if(0==(32&n.i)){n.i|=32;{if((o=J(e)).then){const t=()=>{};o=await o,t()}o.isProxied||(q(o,e,2),o.isProxied=!0);const t=()=>{};n.i|=8;try{new o(n)}catch(t){G(t)}n.i&=-9,t()}if(o.style){let t=o.style;const n=y(e);if(!K.has(n)){const l=()=>{};((t,n,e)=>{let l=K.get(t);tt&&e?(l=l||new CSSStyleSheet,"string"==typeof l?l=n:l.replaceSync(n)):l=n,K.set(t,l)})(n,t,!!(1&e.i)),l()}}}const s=n.g,r=()=>M(n,!0);s&&s["s-rc"]?s["s-rc"].push(r):r()})(0,n,e)}l()}})(this)))}disconnectedCallback(){Y.jmp((()=>{}))}componentOnReady(){return V(this).A}};e.R=t[0],o.includes(r)||s.get(r)||(l.push(r),s.define(r,q(c,e,1)))}))}));{u.innerHTML=l+"{visibility:hidden}.hydrated{visibility:inherit}",u.setAttribute("data-styles","");const t=null!==(e=Y.k)&&void 0!==e?e:c(X);null!=t&&u.setAttribute("nonce",t),r.insertBefore(u,i?i.nextSibling:r.firstChild)}d=!1,a.length?a.map((t=>t.connectedCallback())):Y.jmp((()=>f=setTimeout(R,30)))},F=t=>Y.k=t,H=new WeakMap,V=t=>H.get(t),_=(t,n)=>H.set(n.j=t,n),z=(t,n)=>{const e={i:0,S:t,O:n,L:new Map};return e.A=new Promise((t=>e.C=t)),t["s-p"]=[],t["s-rc"]=[],H.set(t,e)},B=(t,n)=>n in t,G=(t,n)=>(0,console.error)(t,n),I=new Map,J=t=>{const n=t.$.replace(/-/g,"_"),e=t.R,l=I.get(e);return l?l[n]:import(`./${e}.entry.js`).then((t=>(I.set(e,t),t[n])),G)
2
- /*!__STENCIL_STATIC_IMPORT_SWITCH__*/},K=new Map,Q="undefined"!=typeof window?window:{},X=Q.document||{head:{}},Y={i:0,N:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,n,e,l)=>t.addEventListener(n,e,l),rel:(t,n,e,l)=>t.removeEventListener(n,e,l),ce:(t,n)=>new CustomEvent(t,n)},Z=t=>Promise.resolve(t),tt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(t){}return!1})(),nt=[],et=[],lt=(t,n)=>e=>{t.push(e),o||(o=!0,n&&4&Y.i?rt(st):Y.raf(st))},ot=t=>{for(let n=0;n<t.length;n++)try{t[n](performance.now())}catch(t){G(t)}t.length=0},st=()=>{ot(nt),ot(et),(o=nt.length>0)&&Y.raf(st)},rt=t=>Z().then(t),ct=lt(et,!0);export{D as b,A as f,N as g,i as h,Z as p,_ as r,F as s}