proto-sudoku-wc 0.0.565 → 0.0.566

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 (77) hide show
  1. package/dist/cjs/{index-e08d35fd.js → index-7e0298a3.js} +4 -0
  2. package/dist/cjs/index-7e0298a3.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -0
  4. package/dist/cjs/index.cjs.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +4 -2
  6. package/dist/cjs/loader.cjs.js.map +1 -0
  7. package/dist/cjs/proto-sudoku-wc.cjs.js +7 -2
  8. package/dist/cjs/proto-sudoku-wc.cjs.js.map +1 -0
  9. package/dist/cjs/proto-sudoku.cjs.entry.js +3 -1
  10. package/dist/cjs/proto-sudoku.cjs.entry.js.map +1 -0
  11. package/dist/collection/collection-manifest.json +1 -1
  12. package/dist/collection/components/proto-sudoku/alert.js +1 -0
  13. package/dist/collection/components/proto-sudoku/alert.js.map +1 -0
  14. package/dist/collection/components/proto-sudoku/alerts.js +1 -0
  15. package/dist/collection/components/proto-sudoku/alerts.js.map +1 -0
  16. package/dist/collection/components/proto-sudoku/alien.js +1 -0
  17. package/dist/collection/components/proto-sudoku/alien.js.map +1 -0
  18. package/dist/collection/components/proto-sudoku/button.js +1 -0
  19. package/dist/collection/components/proto-sudoku/button.js.map +1 -0
  20. package/dist/collection/components/proto-sudoku/cell.js +1 -0
  21. package/dist/collection/components/proto-sudoku/cell.js.map +1 -0
  22. package/dist/collection/components/proto-sudoku/eswat2-io.js +1 -0
  23. package/dist/collection/components/proto-sudoku/eswat2-io.js.map +1 -0
  24. package/dist/collection/components/proto-sudoku/fingerprint.js +1 -0
  25. package/dist/collection/components/proto-sudoku/fingerprint.js.map +1 -0
  26. package/dist/collection/components/proto-sudoku/header.js +1 -0
  27. package/dist/collection/components/proto-sudoku/header.js.map +1 -0
  28. package/dist/collection/components/proto-sudoku/keys.js +1 -0
  29. package/dist/collection/components/proto-sudoku/keys.js.map +1 -0
  30. package/dist/collection/components/proto-sudoku/proto-sudoku.js +1 -0
  31. package/dist/collection/components/proto-sudoku/proto-sudoku.js.map +1 -0
  32. package/dist/collection/components/proto-sudoku/spinner.js +1 -0
  33. package/dist/collection/components/proto-sudoku/spinner.js.map +1 -0
  34. package/dist/collection/components/proto-sudoku/sudoku-board.js +1 -0
  35. package/dist/collection/components/proto-sudoku/sudoku-board.js.map +1 -0
  36. package/dist/collection/components/proto-sudoku/tool-bar.js +1 -0
  37. package/dist/collection/components/proto-sudoku/tool-bar.js.map +1 -0
  38. package/dist/collection/components/proto-sudoku/tw-label.js +1 -0
  39. package/dist/collection/components/proto-sudoku/tw-label.js.map +1 -0
  40. package/dist/collection/index.js +1 -0
  41. package/dist/collection/index.js.map +1 -0
  42. package/dist/collection/utils/bag.js +1 -0
  43. package/dist/collection/utils/bag.js.map +1 -0
  44. package/dist/collection/utils/index.js +1 -0
  45. package/dist/collection/utils/index.js.map +1 -0
  46. package/dist/collection/utils/labels.js +1 -0
  47. package/dist/collection/utils/labels.js.map +1 -0
  48. package/dist/collection/utils/store.js +1 -0
  49. package/dist/collection/utils/store.js.map +1 -0
  50. package/dist/collection/utils/tw-version.js +1 -0
  51. package/dist/collection/utils/tw-version.js.map +1 -0
  52. package/dist/collection/utils/tw.js +1 -0
  53. package/dist/collection/utils/tw.js.map +1 -0
  54. package/dist/collection/utils/types.js +1 -0
  55. package/dist/collection/utils/types.js.map +1 -0
  56. package/dist/esm/{index-4738dac5.js → index-197f58ff.js} +4 -0
  57. package/dist/esm/index-197f58ff.js.map +1 -0
  58. package/dist/esm/index.js +2 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/dist/esm/loader.js +5 -3
  61. package/dist/esm/loader.js.map +1 -0
  62. package/dist/esm/proto-sudoku-wc.js +8 -3
  63. package/dist/esm/proto-sudoku-wc.js.map +1 -0
  64. package/dist/esm/proto-sudoku.entry.js +3 -1
  65. package/dist/esm/proto-sudoku.entry.js.map +1 -0
  66. package/dist/proto-sudoku-wc/index.esm.js +2 -0
  67. package/dist/proto-sudoku-wc/index.esm.js.map +1 -0
  68. package/dist/proto-sudoku-wc/p-21a020aa.entry.js +3 -0
  69. package/dist/proto-sudoku-wc/p-21a020aa.entry.js.map +1 -0
  70. package/dist/proto-sudoku-wc/p-490877ce.js +3 -0
  71. package/dist/proto-sudoku-wc/p-490877ce.js.map +1 -0
  72. package/dist/proto-sudoku-wc/proto-sudoku-wc.esm.js +2 -1
  73. package/dist/proto-sudoku-wc/proto-sudoku-wc.esm.js.map +1 -0
  74. package/dist/types/stencil-public-runtime.d.ts +12 -12
  75. package/package.json +2 -2
  76. package/dist/proto-sudoku-wc/p-182b370f.js +0 -2
  77. package/dist/proto-sudoku-wc/p-7e98df49.entry.js +0 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-e08d35fd.js');
5
+ const index = require('./index-7e0298a3.js');
6
6
 
7
7
  const Alien = props => {
8
8
  const hex = props.hex || 'currentColor';
@@ -1229,3 +1229,5 @@ const ProtoSudoku = class {
1229
1229
  ProtoSudoku.style = protoSudokuCss;
1230
1230
 
1231
1231
  exports.proto_sudoku = ProtoSudoku;
1232
+
1233
+ //# sourceMappingURL=proto-sudoku.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"proto-sudoku.entry.cjs.js","mappings":"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","names":["h","getRenderingRef","forceUpdate","index"],"sources":["./src/components/proto-sudoku/alien.tsx","./src/utils/bag.ts","./src/utils/labels.ts","./node_modules/@stencil/store/dist/index.mjs","./node_modules/ky/distribution/errors/HTTPError.js","./node_modules/ky/distribution/errors/TimeoutError.js","./node_modules/ky/distribution/utils/is.js","./node_modules/ky/distribution/utils/merge.js","./node_modules/ky/distribution/core/constants.js","./node_modules/ky/distribution/utils/normalize.js","./node_modules/ky/distribution/utils/timeout.js","./node_modules/ky/distribution/errors/DOMException.js","./node_modules/ky/distribution/utils/delay.js","./node_modules/ky/distribution/core/Ky.js","./node_modules/ky/distribution/index.js","./src/utils/store.ts","./src/utils/tw-version.ts","./src/utils/tw.ts","./src/components/proto-sudoku/spinner.tsx","./src/components/proto-sudoku/alert.tsx","./src/components/proto-sudoku/alerts.tsx","./src/components/proto-sudoku/fingerprint.tsx","./src/components/proto-sudoku/eswat2-io.tsx","./src/components/proto-sudoku/header.tsx","./src/components/proto-sudoku/button.tsx","./src/components/proto-sudoku/keys.tsx","./src/components/proto-sudoku/cell.tsx","./src/components/proto-sudoku/sudoku-board.tsx","./src/components/proto-sudoku/tw-label.tsx","./src/components/proto-sudoku/tool-bar.tsx","./src/components/proto-sudoku/proto-sudoku.css?tag=proto-sudoku&encapsulation=shadow","./src/components/proto-sudoku/proto-sudoku.tsx"],"sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { IconProps } from '../../utils';\n\nconst Alien: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class;\n const label = props.label || 'alien';\n const size = props.size || 24;\n\n return (\n <svg\n class={klass}\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g fill={hex}>\n <path\n 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\"\n />\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Alien };\nexport default Alien;\n","const KEY = 'proto-sudoku';\nconst DATA = `${KEY}::data`;\nconst INPUTS = `${KEY}::inputs`;\nconst PICK = `${KEY}::pick`;\n\nconst getForKey = (key: string) => {\n const json = localStorage.getItem(key);\n\n return json ? JSON.parse(json) : undefined;\n};\n\nconst storeForKey = (key: string, value: any) => {\n const json = JSON.stringify(value);\n\n localStorage.setItem(key, json);\n};\n\nconst bag = {\n get: () => {\n return getForKey(DATA);\n },\n store: value => {\n storeForKey(DATA, value);\n },\n inputs: {\n get: (): string[] => {\n const line = getForKey(INPUTS);\n return [...line];\n },\n store: (value: string[]) => {\n storeForKey(INPUTS, value.join(''));\n },\n },\n pick: {\n get: (): number => {\n const pick = getForKey(PICK);\n return pick !== null ? pick : undefined;\n },\n store: (value: number) => {\n storeForKey(PICK, value >= 0 && value < 81 ? value : null);\n },\n },\n};\n\nexport { bag };\nexport default bag;\n","const CHECK: string = 'Check ?';\nconst DELETE: string = 'x';\nconst NEW_PUZZLE: string = 'New Puzzle';\n\nexport { CHECK, DELETE, NEW_PUZZLE };\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n var _a;\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","// eslint-lint-disable-next-line @typescript-eslint/naming-convention\nexport class HTTPError extends Error {\n constructor(response, request, options) {\n const code = (response.status || response.status === 0) ? response.status : '';\n const title = response.statusText || '';\n const status = `${code} ${title}`.trim();\n const reason = status ? `status code ${status}` : 'an unknown error';\n super(`Request failed with ${reason}`);\n Object.defineProperty(this, \"response\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = 'HTTPError';\n this.response = response;\n this.request = request;\n this.options = options;\n }\n}\n//# sourceMappingURL=HTTPError.js.map","export class TimeoutError extends Error {\n constructor(request) {\n super('Request timed out');\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = 'TimeoutError';\n this.request = request;\n }\n}\n//# sourceMappingURL=TimeoutError.js.map","// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isObject = (value) => value !== null && typeof value === 'object';\n//# sourceMappingURL=is.js.map","import { isObject } from './is.js';\nexport const validateAndMerge = (...sources) => {\n for (const source of sources) {\n if ((!isObject(source) || Array.isArray(source)) && typeof source !== 'undefined') {\n throw new TypeError('The `options` argument must be an object');\n }\n }\n return deepMerge({}, ...sources);\n};\nexport const mergeHeaders = (source1 = {}, source2 = {}) => {\n const result = new globalThis.Headers(source1);\n const isHeadersInstance = source2 instanceof globalThis.Headers;\n const source = new globalThis.Headers(source2);\n for (const [key, value] of source.entries()) {\n if ((isHeadersInstance && value === 'undefined') || value === undefined) {\n result.delete(key);\n }\n else {\n result.set(key, value);\n }\n }\n return result;\n};\n// TODO: Make this strongly-typed (no `any`).\nexport const deepMerge = (...sources) => {\n let returnValue = {};\n let headers = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n }\n else if (isObject(source)) {\n for (let [key, value] of Object.entries(source)) {\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = { ...returnValue, [key]: value };\n }\n if (isObject(source.headers)) {\n headers = mergeHeaders(headers, source.headers);\n returnValue.headers = headers;\n }\n }\n }\n return returnValue;\n};\n//# sourceMappingURL=merge.js.map","export const supportsRequestStreams = (() => {\n let duplexAccessed = false;\n let hasContentType = false;\n const supportsReadableStream = typeof globalThis.ReadableStream === 'function';\n if (supportsReadableStream) {\n hasContentType = new globalThis.Request('https://a.com', {\n body: new globalThis.ReadableStream(),\n method: 'POST',\n // @ts-expect-error - Types are outdated.\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n }\n return duplexAccessed && !hasContentType;\n})();\nexport const supportsAbortController = typeof globalThis.AbortController === 'function';\nexport const supportsResponseStreams = typeof globalThis.ReadableStream === 'function';\nexport const supportsFormData = typeof globalThis.FormData === 'function';\nexport const requestMethods = ['get', 'post', 'put', 'patch', 'head', 'delete'];\nconst validate = () => undefined;\nvalidate();\nexport const responseTypes = {\n json: 'application/json',\n text: 'text/*',\n formData: 'multipart/form-data',\n arrayBuffer: '*/*',\n blob: '*/*',\n};\n// The maximum value of a 32bit int (see issue #117)\nexport const maxSafeTimeout = 2147483647;\nexport const stop = Symbol('stop');\n//# sourceMappingURL=constants.js.map","import { requestMethods } from '../core/constants.js';\nexport const normalizeRequestMethod = (input) => requestMethods.includes(input) ? input.toUpperCase() : input;\nconst retryMethods = ['get', 'put', 'head', 'delete', 'options', 'trace'];\nconst retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];\nconst retryAfterStatusCodes = [413, 429, 503];\nconst defaultRetryOptions = {\n limit: 2,\n methods: retryMethods,\n statusCodes: retryStatusCodes,\n afterStatusCodes: retryAfterStatusCodes,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n};\nexport const normalizeRetryOptions = (retry = {}) => {\n if (typeof retry === 'number') {\n return {\n ...defaultRetryOptions,\n limit: retry,\n };\n }\n if (retry.methods && !Array.isArray(retry.methods)) {\n throw new Error('retry.methods must be an array');\n }\n if (retry.statusCodes && !Array.isArray(retry.statusCodes)) {\n throw new Error('retry.statusCodes must be an array');\n }\n return {\n ...defaultRetryOptions,\n ...retry,\n afterStatusCodes: retryAfterStatusCodes,\n };\n};\n//# sourceMappingURL=normalize.js.map","import { TimeoutError } from '../errors/TimeoutError.js';\n// `Promise.race()` workaround (#91)\nexport default async function timeout(request, abortController, options) {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n if (abortController) {\n abortController.abort();\n }\n reject(new TimeoutError(request));\n }, options.timeout);\n void options\n .fetch(request)\n .then(resolve)\n .catch(reject)\n .then(() => {\n clearTimeout(timeoutId);\n });\n });\n}\n//# sourceMappingURL=timeout.js.map","// DOMException is supported on most modern browsers and Node.js 18+.\n// @see https://developer.mozilla.org/en-US/docs/Web/API/DOMException#browser_compatibility\nconst isDomExceptionSupported = Boolean(globalThis.DOMException);\n// TODO: When targeting Node.js 18, use `signal.throwIfAborted()` (https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted)\nexport function composeAbortError(signal) {\n /*\n NOTE: Use DomException with AbortError name as specified in MDN docs (https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort)\n > When abort() is called, the fetch() promise rejects with an Error of type DOMException, with name AbortError.\n */\n if (isDomExceptionSupported) {\n return new DOMException(signal?.reason ?? 'The operation was aborted.', 'AbortError');\n }\n // DOMException not supported. Fall back to use of error and override name.\n const error = new Error(signal?.reason ?? 'The operation was aborted.');\n error.name = 'AbortError';\n return error;\n}\n//# sourceMappingURL=DOMException.js.map","// https://github.com/sindresorhus/delay/tree/ab98ae8dfcb38e1593286c94d934e70d14a4e111\nimport { composeAbortError } from '../errors/DOMException.js';\nexport default async function delay(ms, { signal }) {\n return new Promise((resolve, reject) => {\n if (signal) {\n if (signal.aborted) {\n reject(composeAbortError(signal));\n return;\n }\n signal.addEventListener('abort', handleAbort, { once: true });\n }\n function handleAbort() {\n reject(composeAbortError(signal));\n clearTimeout(timeoutId);\n }\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', handleAbort);\n resolve();\n }, ms);\n });\n}\n//# sourceMappingURL=delay.js.map","import { HTTPError } from '../errors/HTTPError.js';\nimport { TimeoutError } from '../errors/TimeoutError.js';\nimport { deepMerge, mergeHeaders } from '../utils/merge.js';\nimport { normalizeRequestMethod, normalizeRetryOptions } from '../utils/normalize.js';\nimport timeout from '../utils/timeout.js';\nimport delay from '../utils/delay.js';\nimport { maxSafeTimeout, responseTypes, stop, supportsAbortController, supportsFormData, supportsResponseStreams, supportsRequestStreams, } from './constants.js';\nexport class Ky {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n static create(input, options) {\n const ky = new Ky(input, options);\n const fn = async () => {\n if (ky._options.timeout > maxSafeTimeout) {\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${maxSafeTimeout}`);\n }\n // Delay the fetch so that body method shortcuts can set the Accept header\n await Promise.resolve();\n let response = await ky._fetch();\n for (const hook of ky._options.hooks.afterResponse) {\n // eslint-disable-next-line no-await-in-loop\n const modifiedResponse = await hook(ky.request, ky._options, ky._decorateResponse(response.clone()));\n if (modifiedResponse instanceof globalThis.Response) {\n response = modifiedResponse;\n }\n }\n ky._decorateResponse(response);\n if (!response.ok && ky._options.throwHttpErrors) {\n let error = new HTTPError(response, ky.request, ky._options);\n for (const hook of ky._options.hooks.beforeError) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n throw error;\n }\n // If `onDownloadProgress` is passed, it uses the stream API internally\n /* istanbul ignore next */\n if (ky._options.onDownloadProgress) {\n if (typeof ky._options.onDownloadProgress !== 'function') {\n throw new TypeError('The `onDownloadProgress` option must be a function');\n }\n if (!supportsResponseStreams) {\n throw new Error('Streams are not supported in your environment. `ReadableStream` is missing.');\n }\n return ky._stream(response.clone(), ky._options.onDownloadProgress);\n }\n return response;\n };\n const isRetriableMethod = ky._options.retry.methods.includes(ky.request.method.toLowerCase());\n const result = (isRetriableMethod ? ky._retry(fn) : fn());\n for (const [type, mimeType] of Object.entries(responseTypes)) {\n result[type] = async () => {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n ky.request.headers.set('accept', ky.request.headers.get('accept') || mimeType);\n const awaitedResult = await result;\n const response = awaitedResult.clone();\n if (type === 'json') {\n if (response.status === 204) {\n return '';\n }\n const arrayBuffer = await response.clone().arrayBuffer();\n const responseSize = arrayBuffer.byteLength;\n if (responseSize === 0) {\n return '';\n }\n if (options.parseJson) {\n return options.parseJson(await response.text());\n }\n }\n return response[type]();\n };\n }\n return result;\n }\n // eslint-disable-next-line complexity\n constructor(input, options = {}) {\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"abortController\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_retryCount\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 0\n });\n Object.defineProperty(this, \"_input\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this._input = input;\n this._options = {\n // TODO: credentials can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208\n credentials: this._input.credentials || 'same-origin',\n ...options,\n headers: mergeHeaders(this._input.headers, options.headers),\n hooks: deepMerge({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: [],\n }, options.hooks),\n method: normalizeRequestMethod(options.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(options.prefixUrl || ''),\n retry: normalizeRetryOptions(options.retry),\n throwHttpErrors: options.throwHttpErrors !== false,\n timeout: typeof options.timeout === 'undefined' ? 10000 : options.timeout,\n fetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n };\n if (typeof this._input !== 'string' && !(this._input instanceof URL || this._input instanceof globalThis.Request)) {\n throw new TypeError('`input` must be a string, URL, or Request');\n }\n if (this._options.prefixUrl && typeof this._input === 'string') {\n if (this._input.startsWith('/')) {\n throw new Error('`input` must not begin with a slash when using `prefixUrl`');\n }\n if (!this._options.prefixUrl.endsWith('/')) {\n this._options.prefixUrl += '/';\n }\n this._input = this._options.prefixUrl + this._input;\n }\n if (supportsAbortController) {\n this.abortController = new globalThis.AbortController();\n if (this._options.signal) {\n const originalSignal = this._options.signal;\n this._options.signal.addEventListener('abort', () => {\n this.abortController.abort(originalSignal.reason);\n });\n }\n this._options.signal = this.abortController.signal;\n }\n if (supportsRequestStreams) {\n // @ts-expect-error - Types are outdated.\n this._options.duplex = 'half';\n }\n this.request = new globalThis.Request(this._input, this._options);\n if (this._options.searchParams) {\n // eslint-disable-next-line unicorn/prevent-abbreviations\n const textSearchParams = typeof this._options.searchParams === 'string'\n ? this._options.searchParams.replace(/^\\?/, '')\n : new URLSearchParams(this._options.searchParams).toString();\n // eslint-disable-next-line unicorn/prevent-abbreviations\n const searchParams = '?' + textSearchParams;\n const url = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, searchParams);\n // To provide correct form boundary, Content-Type header should be deleted each time when new Request instantiated from another one\n if (((supportsFormData && this._options.body instanceof globalThis.FormData)\n || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers['content-type'])) {\n this.request.headers.delete('content-type');\n }\n // The spread of `this.request` is required as otherwise it misses the `duplex` option for some reason and throws.\n this.request = new globalThis.Request(new globalThis.Request(url, { ...this.request }), this._options);\n }\n if (this._options.json !== undefined) {\n this._options.body = JSON.stringify(this._options.json);\n this.request.headers.set('content-type', this._options.headers.get('content-type') ?? 'application/json');\n this.request = new globalThis.Request(this.request, { body: this._options.body });\n }\n }\n _calculateRetryDelay(error) {\n this._retryCount++;\n if (this._retryCount < this._options.retry.limit && !(error instanceof TimeoutError)) {\n if (error instanceof HTTPError) {\n if (!this._options.retry.statusCodes.includes(error.response.status)) {\n return 0;\n }\n const retryAfter = error.response.headers.get('Retry-After');\n if (retryAfter && this._options.retry.afterStatusCodes.includes(error.response.status)) {\n let after = Number(retryAfter);\n if (Number.isNaN(after)) {\n after = Date.parse(retryAfter) - Date.now();\n }\n else {\n after *= 1000;\n }\n if (typeof this._options.retry.maxRetryAfter !== 'undefined' && after > this._options.retry.maxRetryAfter) {\n return 0;\n }\n return after;\n }\n if (error.response.status === 413) {\n return 0;\n }\n }\n const BACKOFF_FACTOR = 0.3;\n return Math.min(this._options.retry.backoffLimit, BACKOFF_FACTOR * (2 ** (this._retryCount - 1)) * 1000);\n }\n return 0;\n }\n _decorateResponse(response) {\n if (this._options.parseJson) {\n response.json = async () => this._options.parseJson(await response.text());\n }\n return response;\n }\n async _retry(fn) {\n try {\n return await fn();\n // eslint-disable-next-line @typescript-eslint/no-implicit-any-catch\n }\n catch (error) {\n const ms = Math.min(this._calculateRetryDelay(error), maxSafeTimeout);\n if (ms !== 0 && this._retryCount > 0) {\n await delay(ms, { signal: this._options.signal });\n for (const hook of this._options.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n const hookResult = await hook({\n request: this.request,\n options: this._options,\n error: error,\n retryCount: this._retryCount,\n });\n // If `stop` is returned from the hook, the retry process is stopped\n if (hookResult === stop) {\n return;\n }\n }\n return this._retry(fn);\n }\n throw error;\n }\n }\n async _fetch() {\n for (const hook of this._options.hooks.beforeRequest) {\n // eslint-disable-next-line no-await-in-loop\n const result = await hook(this.request, this._options);\n if (result instanceof Request) {\n this.request = result;\n break;\n }\n if (result instanceof Response) {\n return result;\n }\n }\n if (this._options.timeout === false) {\n return this._options.fetch(this.request.clone());\n }\n return timeout(this.request.clone(), this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(response, onDownloadProgress) {\n const totalBytes = Number(response.headers.get('content-length')) || 0;\n let transferredBytes = 0;\n if (response.status === 204) {\n if (onDownloadProgress) {\n onDownloadProgress({ percent: 1, totalBytes, transferredBytes }, new Uint8Array());\n }\n return new globalThis.Response(null, {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n }\n return new globalThis.Response(new globalThis.ReadableStream({\n async start(controller) {\n const reader = response.body.getReader();\n if (onDownloadProgress) {\n onDownloadProgress({ percent: 0, transferredBytes: 0, totalBytes }, new Uint8Array());\n }\n async function read() {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n return;\n }\n if (onDownloadProgress) {\n transferredBytes += value.byteLength;\n const percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes;\n onDownloadProgress({ percent, transferredBytes, totalBytes }, value);\n }\n controller.enqueue(value);\n await read();\n }\n await read();\n },\n }), {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n }\n}\n//# sourceMappingURL=Ky.js.map","/*! MIT License © Sindre Sorhus */\nimport { Ky } from './core/Ky.js';\nimport { requestMethods, stop } from './core/constants.js';\nimport { validateAndMerge } from './utils/merge.js';\nconst createInstance = (defaults) => {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n const ky = (input, options) => Ky.create(input, validateAndMerge(defaults, options));\n for (const method of requestMethods) {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n ky[method] = (input, options) => Ky.create(input, validateAndMerge(defaults, options, { method }));\n }\n ky.create = (newDefaults) => createInstance(validateAndMerge(newDefaults));\n ky.extend = (newDefaults) => createInstance(validateAndMerge(defaults, newDefaults));\n ky.stop = stop;\n return ky;\n};\nconst ky = createInstance();\nexport default ky;\nexport { HTTPError } from './errors/HTTPError.js';\nexport { TimeoutError } from './errors/TimeoutError.js';\n//# sourceMappingURL=index.js.map","import { createStore } from '@stencil/store';\nimport ky from 'ky';\nimport { bag } from './bag';\nimport {\n AppStore,\n GeoMap,\n ComputeBoxFn,\n ComputeLocsFn,\n ComputeKeysFn,\n GeometryFn,\n InputsFn,\n PuzzleApiData,\n PuzzleCell,\n PuzzleData,\n} from './types';\n\n// --------------------------------------------------------[ mutable store ]\n\nconst storeDef: AppStore = {\n list: [],\n keys: [],\n locs: [],\n loading: false,\n solved: false,\n error: undefined,\n pick: undefined,\n data: undefined,\n};\n\nconst { state } = createStore(storeDef);\n\n// --------------------------------------------------------[ geometry ]\n\n// NOTE: by using Sets here, we don't have to worry about clearing geometry...\nconst geometry: GeoMap = new Map([\n ['row', new Map<number, Set<number>>()],\n ['column', new Map<number, Set<number>>()],\n ['box', new Map<number, Set<number>>()],\n]);\n\nconst keyValues: string[] = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\nconst computeBox: ComputeBoxFn = (row, column) => {\n if (column < 3) {\n return row < 3 ? 0 : row < 6 ? 3 : 6;\n } else {\n if (column < 6) {\n return row < 3 ? 1 : row < 6 ? 4 : 7;\n } else {\n return row < 3 ? 2 : row < 6 ? 5 : 8;\n }\n }\n};\n\nconst computeLocs: ComputeLocsFn = (index, row, column, box) => {\n const data = new Map<string, number>([\n ['row', row],\n ['column', column],\n ['box', box],\n ]);\n const locs = new Set<number>();\n\n data.forEach((value, key) => {\n geometry\n .get(key)\n .get(value)\n .forEach(indx => {\n indx !== index && locs.add(indx);\n });\n });\n\n return Array.from(locs);\n};\n\nconst computeKeys: ComputeKeysFn = locs => {\n const { list } = state;\n const found = new Set<string>();\n\n locs.map(indx => {\n const { key } = list[indx];\n if (key != '.') {\n found.add(key);\n }\n });\n\n const keys = keyValues.filter(key => !found.has(key));\n\n return keys;\n};\n\nconst updateGeometry: GeometryFn = (index, row, column, box) => {\n const data = new Map<string, number>([\n ['row', row],\n ['column', column],\n ['box', box],\n ]);\n\n data.forEach((value, key) => {\n const map = geometry.get(key);\n\n if (map.has(value)) {\n // looking at the set specification, it should be sufficient to just call add\n // https://tc39.es/ecma262/#sec-set.prototype.add\n map.get(value).add(index);\n } else {\n map.set(value, new Set([index]));\n }\n });\n};\n\nconst updateFromInputs: InputsFn = list => {\n const inputs = bag.inputs.get();\n\n inputs.forEach((key, indx) => {\n const cell = list[indx];\n const { isClue } = cell;\n\n if (!isClue) {\n cell.key = key;\n }\n });\n};\n\n// --------------------------------------------------------[ process ]\n\nconst processData = (next: PuzzleData) => {\n if (next) {\n const { puzzle, ref } = next;\n const cells = puzzle ? [...puzzle] : [];\n const line = ref ? atob(ref) : undefined; // decrypt the solution... [ base64 ]\n const solution = line ? [...line] : [];\n\n const list = cells.map((key, indx) => {\n const value = solution[indx];\n const isClue = key === value;\n const row = Math.floor(indx / 9);\n const column = indx % 9;\n const box = computeBox(row, column);\n\n updateGeometry(indx, row, column, box);\n\n return { key, isClue, value, indx, row, column, box };\n });\n\n // NOTE: this only happens once on data change...\n updateFromInputs(list);\n\n state.data = next;\n state.list = list;\n } else {\n state.data = undefined;\n state.list = [];\n }\n};\n\nconst processPick = (next: PuzzleCell) => {\n if (next !== undefined && next.indx != state.pick) {\n const { isClue, indx, row, column, box } = next;\n const locs = computeLocs(indx, row, column, box);\n const keys = isClue ? [] : computeKeys(locs);\n\n state.pick = indx;\n state.keys = keys;\n state.locs = locs;\n // NOTE: we could auto-pick if there's only one key...\n // (keys.length === 1) && next.key = keys[0];\n } else {\n state.pick = undefined;\n state.keys = [];\n state.locs = [];\n }\n savePick(state.pick);\n};\n\n// --------------------------------------------------------[ utils ]\n\nlet api = undefined;\n\nconst platformPrefix = {\n netlify: '/.netlify/functions',\n vercel: 'https://sudoku-rust-api.vercel.app/api',\n};\n\nconst getPrefixFor = (platform: string) => {\n const keys = Object.keys(platformPrefix);\n const target = keys.includes(platform) ? platform : 'vercel';\n\n return platformPrefix[target];\n};\n\nconst initApi = (platform: string) => {\n const prefix = getPrefixFor(platform);\n\n api = ky.extend({\n hooks: {\n beforeRequest: [\n request => {\n request.headers.set('X-Requested-With', 'ky');\n request.headers.set('X-Custom-Header', 'foobar');\n },\n ],\n },\n prefixUrl: prefix,\n timeout: 10000,\n });\n};\n\nconst saveInputs = (inputs: string[]) => {\n bag.inputs.store(inputs);\n};\n\nconst savePick = (pick: number) => {\n bag.pick.store(pick);\n};\n\nconst clearStore = (loading = false) => {\n state.list = [];\n state.keys = [];\n state.locs = [];\n state.loading = loading;\n state.solved = false;\n state.error = undefined;\n state.pick = undefined;\n state.data = undefined;\n};\n\nconst updateStore = (data: PuzzleApiData, save: boolean = true) => {\n const { puzzle, ref } = data;\n\n if (save) {\n bag.inputs.store([]);\n bag.store(data);\n }\n\n processData({ puzzle, ref });\n};\n\n// --------------------------------------------------------[ actions ]\n\nconst initApp = (platform: string) => {\n initApi(platform);\n clearStore();\n // this retrieves the last data we stored in the bag...\n const data = bag.get();\n const pick = bag.pick.get();\n\n if (data) {\n updateStore(data, false);\n\n if (pick >= 0) {\n const { list } = state;\n const cell: PuzzleCell = list[pick];\n\n processPick(cell);\n }\n }\n};\n\nconst refresh = async () => {\n clearStore(true);\n\n saveInputs([]);\n savePick(state.pick);\n\n try {\n // fetch a new puzzle from the api...\n const data: PuzzleApiData = await api.get('puzzle').json();\n\n updateStore(data);\n } catch (err) {\n // handle error...\n const { message } = err;\n\n console.log('-- ', message);\n console.log(err);\n\n state.error = message;\n } finally {\n // always executed\n state.loading = false;\n }\n};\n\nconst select = (cell: PuzzleCell) => {\n processPick(cell);\n};\n\nconst redraw = (list: PuzzleCell[]) => {\n state.list = [...list];\n list.length = 0;\n};\n\nconst check = () => {\n const { list } = state;\n const inputs: string[] = [];\n\n let errors: number = 0;\n let found: number = 0;\n let clues: number = 0;\n\n list.forEach(cell => {\n const { key, value, isClue } = cell;\n\n if (!isClue) {\n if (key !== '.') {\n if (key !== value) {\n errors = errors + 1;\n cell.key = '.';\n } else {\n found = found + 1;\n }\n }\n } else {\n clues = clues + 1;\n }\n\n inputs.push(cell.key);\n });\n\n const total = clues + found;\n\n found ? saveInputs(inputs) : saveInputs([]);\n\n if (errors > 0) {\n redraw(list);\n } else {\n if (total === 81) {\n state.solved = true;\n }\n }\n};\n\nconst input = (key: string) => {\n const { pick, list } = state;\n const cell = list[pick];\n\n cell.key = key;\n\n redraw(list);\n};\n\nconst actions = {\n initApp,\n refresh,\n select,\n check,\n input,\n};\n\nexport { state, actions };\nexport default state;\n","// WARNING: generated file...\nconst TW_VERSION = '3.2.4';\n\nexport { TW_VERSION };\nexport default TW_VERSION;\n","const tw = (...classes: (false | null | undefined | string)[]): string => {\n return classes.filter(Boolean).join(' ');\n};\n\nexport { tw };\nexport default tw;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { tw, IconProps } from '../../utils';\n\nconst Spinner: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class || '';\n const label = props.label || 'loading...';\n const size = props.size || 24;\n\n return (\n <svg\n class={tw(klass, 'animate-spin')}\n width={size}\n height={size}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g>\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke={hex}\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill={hex}\n 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\"\n ></path>\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Spinner };\nexport default Spinner;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Alien } from './alien';\nimport { Spinner } from './spinner';\n\ninterface AlertProps {\n message: string;\n salute?: string;\n spinner?: boolean;\n}\n\nconst Alert: FunctionalComponent<AlertProps> = props => {\n const { message, salute, spinner = false } = props;\n\n return (\n <div class=\"mt-5 flex h-24px flex-row items-center\">\n {spinner ? <Spinner class=\"mr-2\" /> : <Alien class=\"mr-2\" />}\n {salute ? <label class=\"mr-1 font-bold\">{salute}:</label> : ''}\n <label class=\"italic\">{message}</label>\n </div>\n );\n};\n\nexport { Alert };\nexport default Alert;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Alert } from './alert';\nimport { state } from '../../utils';\n\nconst Alerts: FunctionalComponent = _props => {\n const { solved, loading, error } = state;\n const play = !loading && !error && !solved;\n return (\n <div class=\"flex flex-col\">\n {play ? <Alert message=\"Welcome, are you ready to play?...\" /> : ''}\n {loading ? <Alert message=\"Loading...\" spinner={true} /> : ''}\n {error ? <Alert message={error} salute=\"ERROR\" /> : ''}\n {solved ? <Alert message=\"You solved the puzzle!!\" /> : ''}\n </div>\n );\n};\n\nexport { Alerts };\nexport default Alert;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { IconProps } from '../../utils';\n\nconst Fingerprint: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class;\n const label = props.label || 'fingerprint';\n const size = props.size || 24;\n\n return (\n <svg\n class={klass}\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g fill={hex}>\n <path\n 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\"\n />\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Fingerprint };\nexport default Fingerprint;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Fingerprint } from './fingerprint';\n\nconst url: string = 'https://eswat2.dev';\nconst who: string = 'eswat2';\n\nconst Eswat2Io: FunctionalComponent = _props => {\n return (\n <a\n class=\"absolute top-0 right-0 text-clrs-gray hover:text-clrs-navy\"\n href={url}\n aria-label={who}\n title={who}\n >\n <Fingerprint label={who} />\n </a>\n );\n};\n\nexport { Eswat2Io };\nexport default Eswat2Io;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { tw } from '../../utils';\n\nconst Header: FunctionalComponent = (_props, children) => {\n return (\n <h1\n class={tw(\n 'text-center uppercase text-clrs-red',\n 'mr-0 ml-0 mt-11 mb-11',\n 'text-6xl font-thin',\n )}\n >\n {children}\n </h1>\n );\n};\n\nexport { Header };\nexport default Header;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { tw, VoidFn, CHECK, NEW_PUZZLE, DELETE } from '../../utils';\n\ninterface ButtonProps {\n label: string;\n callback: VoidFn;\n matched?: boolean;\n}\n\nconst Button: FunctionalComponent<ButtonProps> = props => {\n const { label, callback, matched = false } = props;\n\n return (\n <button\n class={tw(\n 'rounded-md border border-solid border-clrs-slate4 font-bold',\n label === CHECK\n ? 'mr-2 bg-clrs-yellow px-3 py-2 text-clrs-navy'\n : label === NEW_PUZZLE\n ? 'mr-2 bg-clrs-navy px-3 py-2 text-white'\n : label === DELETE\n ? 'mr-1 bg-clrs-red px-2 py-1 text-white'\n : matched\n ? 'mr-1 bg-clrs-slate4 px-2 py-1 text-white'\n : 'mr-1 bg-gray-50 px-2 py-1 text-clrs-navy',\n )}\n onClick={callback}\n >\n {label}\n </button>\n );\n};\n\nexport { Button };\nexport default Button;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Button } from './button';\nimport { actions, state, DELETE } from '../../utils';\n\nconst Keys: FunctionalComponent = _props => {\n const { keys, list, pick, solved } = state;\n\n const genHandler = (key: string) => {\n return () => {\n actions.input(key);\n };\n };\n\n const values = solved ? [] : keys;\n const cell = pick != undefined ? list[pick] : undefined;\n\n return (\n <div class=\"mt-2 flex flex-row justify-end\">\n {!solved && cell && !cell.isClue && cell.key != '.' ? (\n <Button label={DELETE} callback={genHandler('.')} />\n ) : (\n ''\n )}\n {values.map((key: string) => {\n return (\n <Button\n label={key}\n callback={genHandler(key)}\n matched={cell.key === key}\n />\n );\n })}\n </div>\n );\n};\n\nexport { Keys };\nexport default Keys;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { actions, tw, PuzzleCell } from '../../utils';\n\n// NOTE: building indx mapping for the border highlighting...\nconst borderRight = [\n 2, 5, 11, 14, 20, 23, 29, 32, 38, 41, 47, 50, 56, 59, 65, 68, 74, 77,\n];\nconst borderLeft = borderRight.map(key => key + 1);\nconst borderBottom = [\n 18, 19, 20, 21, 22, 23, 24, 25, 26, 45, 46, 47, 48, 49, 50, 51, 52, 53,\n];\nconst borderTop = borderBottom.map(key => key + 9);\n\ninterface CellProps {\n cell: PuzzleCell;\n focus: boolean;\n selected: boolean;\n solved: boolean;\n}\n\n// Functional components return JSX...\nconst Cell: FunctionalComponent<CellProps> = props => {\n const { cell, focus, selected, solved } = props;\n const { key, isClue, indx } = cell;\n const clue: string = key != '.' ? key : '';\n\n const genHandler = (cell: PuzzleCell, solved: boolean) => {\n return () => {\n if (!solved) {\n actions.select(cell);\n }\n };\n };\n\n return (\n <label\n class={tw(\n `cell-${indx}`,\n borderRight.includes(indx) ? 'border-xbr-clrs-navy' : '',\n borderLeft.includes(indx) ? 'border-xbl-clrs-navy' : '',\n borderBottom.includes(indx) ? 'border-xbb-clrs-navy' : '',\n borderTop.includes(indx) ? 'border-xbt-clrs-navy' : '',\n 'h-8 w-8 border border-solid text-center leading-8',\n selected\n ? 'border-clrs-red bg-clrs-red-a50 text-clrs-red'\n : focus\n ? 'border-clrs-gray bg-clrs-green-a50 font-bold'\n : isClue\n ? 'border-clrs-gray bg-clrs-silver'\n : clue !== ''\n ? 'border-clrs-gray text-clrs-red'\n : 'border-clrs-gray',\n )}\n onClick={genHandler(cell, solved)}\n >\n {clue}\n </label>\n );\n};\n\nexport { Cell };\nexport default Cell;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Cell } from './cell';\nimport { state, tw } from '../../utils';\n\nconst SudokuBoard: FunctionalComponent = _props => {\n const { list, pick, locs, solved } = state;\n\n return (\n <div\n class={tw(\n 'flex flex-row flex-wrap',\n 'border border-solid border-clrs-navy',\n 'h-76p5 w-76p5 text-lg',\n )}\n >\n {list.map((cell, index) => {\n const selected: boolean = solved ? false : index === pick;\n const focus: boolean = solved ? false : locs.includes(index);\n\n return (\n <Cell cell={cell} focus={focus} selected={selected} solved={solved} />\n );\n })}\n </div>\n );\n};\n\nexport { SudokuBoard };\nexport default SudokuBoard;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { TW_VERSION } from '../../utils';\n\nconst TwLabel: FunctionalComponent = _props => {\n return (\n <label class=\"ml-auto align-top text-xs italic text-clrs-slate4\">\n Tailwind {TW_VERSION}\n </label>\n );\n};\n\nexport { TwLabel };\nexport default TwLabel;\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { Button } from './button';\nimport { TwLabel } from './tw-label';\nimport { actions, state, VoidFn, CHECK, NEW_PUZZLE } from '../../utils';\n\nconst handleRefresh = (actions: any): VoidFn => {\n return () => {\n actions.refresh();\n };\n};\n\nconst handleCheck = (actions: any): VoidFn => {\n return () => {\n actions.check();\n };\n};\n\nconst ToolBar: FunctionalComponent = _props => {\n const { list, solved } = state;\n\n return (\n <div class=\"flex flex-row\">\n <Button label={NEW_PUZZLE} callback={handleRefresh(actions)} />\n {list.length === 81 && !solved ? (\n <Button label={CHECK} callback={handleCheck(actions)} />\n ) : (\n ''\n )}\n <TwLabel />\n </div>\n );\n};\n\nexport { ToolBar };\nexport default ToolBar;\n","*,\n::before,\n::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.ds1-main {\n margin: 1.5rem;\n display: flex;\n flex-direction: column;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,\n 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n color: var(--clrs-navy, #001f3f);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.right-0 {\n right: 0px;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mr-2 {\n margin-right: 0.5rem;\n}\n\n.mr-1 {\n margin-right: 0.25rem;\n}\n\n.mr-0 {\n margin-right: 0px;\n}\n\n.ml-0 {\n margin-left: 0px;\n}\n\n.mt-11 {\n margin-top: 2.75rem;\n}\n\n.mb-11 {\n margin-bottom: 2.75rem;\n}\n\n.mt-2 {\n margin-top: 0.5rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.flex {\n display: flex;\n}\n\n.h-24px {\n height: 24px;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-76p5 {\n height: 19.125rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-76p5 {\n width: 19.125rem;\n}\n\n.max-w-min {\n max-width: -moz-min-content;\n max-width: min-content;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.rounded-md {\n border-radius: 0.375rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-solid {\n border-style: solid;\n}\n\n.border-clrs-slate4 {\n border-color: var(--clrs-slate4, #4e5964);\n}\n\n.border-clrs-red {\n border-color: var(--clrs-red, #ff4136);\n}\n\n.border-clrs-gray {\n border-color: var(--clrs-gray, #aaaaaa);\n}\n\n.border-clrs-navy {\n border-color: var(--clrs-navy, #001f3f);\n}\n\n.bg-clrs-yellow {\n background-color: var(--clrs-yellow, #ffdc00);\n}\n\n.bg-clrs-navy {\n background-color: var(--clrs-navy, #001f3f);\n}\n\n.bg-clrs-red {\n background-color: var(--clrs-red, #ff4136);\n}\n\n.bg-clrs-slate4 {\n background-color: var(--clrs-slate4, #4e5964);\n}\n\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n\n.bg-clrs-red-a50 {\n background-color: var(--clrs-red-a50, #ff413650);\n}\n\n.bg-clrs-green-a50 {\n background-color: var(--clrs-green-a50, #2ecc4050);\n}\n\n.bg-clrs-silver {\n background-color: var(--clrs-silver, #dddddd);\n}\n\n.p-0\\.5 {\n padding: 0.125rem;\n}\n\n.p-0 {\n padding: 0px;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.text-center {\n text-align: center;\n}\n\n.align-top {\n vertical-align: top;\n}\n\n.text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-thin {\n font-weight: 100;\n}\n\n.uppercase {\n text-transform: uppercase;\n}\n\n.italic {\n font-style: italic;\n}\n\n.leading-8 {\n line-height: 2rem;\n}\n\n.text-clrs-navy {\n color: var(--clrs-navy, #001f3f);\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.text-clrs-red {\n color: var(--clrs-red, #ff4136);\n}\n\n.text-clrs-gray {\n color: var(--clrs-gray, #aaaaaa);\n}\n\n.text-clrs-slate4 {\n color: var(--clrs-slate4, #4e5964);\n}\n\n.opacity-25 {\n opacity: 0.25;\n}\n\n.opacity-75 {\n opacity: 0.75;\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),\n 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.border-xbb-clrs-navy {\n border-bottom: 1px solid var(--clrs-navy, #001f3f) !important;\n}\n\n.border-xbt-clrs-navy {\n border-top: 1px solid var(--clrs-navy, #001f3f) !important;\n}\n\n.border-xbl-clrs-navy {\n border-left: 1px solid var(--clrs-navy, #001f3f) !important;\n}\n\n.border-xbr-clrs-navy {\n border-right: 1px solid var(--clrs-navy, #001f3f) !important;\n}\n\n.hover\\:text-clrs-navy:hover {\n color: var(--clrs-navy, #001f3f);\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { Alerts } from './alerts';\nimport { Eswat2Io } from './eswat2-io';\nimport { Header } from './header';\nimport { Keys } from './keys';\nimport { SudokuBoard } from './sudoku-board';\nimport { ToolBar } from './tool-bar';\nimport { actions } from '../../utils';\n\n@Component({\n tag: 'proto-sudoku',\n styleUrl: 'proto-sudoku.css',\n shadow: true,\n})\nexport class ProtoSudoku {\n @Prop() tag: string = 'proto-sudoku';\n @Prop() platform: string = 'vercel';\n\n componentDidLoad() {\n actions.initApp(this.platform);\n }\n\n render() {\n return (\n <div id=\"app\" class=\"ds1-main relative max-w-min p-0.5\">\n <Eswat2Io />\n <Header>Sudoku</Header>\n <SudokuBoard />\n <Keys />\n <hr class=\"ml-0 mr-0\" />\n <ToolBar />\n <Alerts />\n </div>\n );\n }\n}\n"],"version":3}
@@ -4,7 +4,7 @@
4
4
  ],
5
5
  "compiler": {
6
6
  "name": "@stencil/core",
7
- "version": "2.22.2",
7
+ "version": "3.0.0",
8
8
  "typescriptVersion": "4.9.4"
9
9
  },
10
10
  "collections": [],
@@ -7,3 +7,4 @@ const Alert = props => {
7
7
  };
8
8
  export { Alert };
9
9
  export default Alert;
10
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,KAAK,GAAoC,KAAK,CAAC,EAAE;EACrD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;EAEnD,OAAO,CACL,WAAK,KAAK,EAAC,wCAAwC;IAChD,OAAO,CAAC,CAAC,CAAC,EAAC,OAAO,IAAC,KAAK,EAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAC,KAAK,IAAC,KAAK,EAAC,MAAM,GAAG;IAC3D,MAAM,CAAC,CAAC,CAAC,aAAO,KAAK,EAAC,gBAAgB;MAAE,MAAM;UAAU,CAAC,CAAC,CAAC,EAAE;IAC9D,aAAO,KAAK,EAAC,QAAQ,IAAE,OAAO,CAAS,CACnC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,eAAe,KAAK,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Alien } from './alien';\nimport { Spinner } from './spinner';\n\ninterface AlertProps {\n message: string;\n salute?: string;\n spinner?: boolean;\n}\n\nconst Alert: FunctionalComponent<AlertProps> = props => {\n const { message, salute, spinner = false } = props;\n\n return (\n <div class=\"mt-5 flex h-24px flex-row items-center\">\n {spinner ? <Spinner class=\"mr-2\" /> : <Alien class=\"mr-2\" />}\n {salute ? <label class=\"mr-1 font-bold\">{salute}:</label> : ''}\n <label class=\"italic\">{message}</label>\n </div>\n );\n};\n\nexport { Alert };\nexport default Alert;\n"]}
@@ -8,3 +8,4 @@ const Alerts = _props => {
8
8
  };
9
9
  export { Alerts };
10
10
  export default Alert;
11
+ //# sourceMappingURL=alerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/alerts.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,MAAM,GAAwB,MAAM,CAAC,EAAE;EAC3C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;EACzC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;EAC3C,OAAO,CACL,WAAK,KAAK,EAAC,eAAe;IACvB,IAAI,CAAC,CAAC,CAAC,EAAC,KAAK,IAAC,OAAO,EAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,EAAE;IAClE,OAAO,CAAC,CAAC,CAAC,EAAC,KAAK,IAAC,OAAO,EAAC,YAAY,EAAC,OAAO,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,EAAE;IAC5D,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,IAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;IACrD,MAAM,CAAC,CAAC,CAAC,EAAC,KAAK,IAAC,OAAO,EAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC,EAAE,CACtD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,KAAK,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Alert } from './alert';\nimport { state } from '../../utils';\n\nconst Alerts: FunctionalComponent = _props => {\n const { solved, loading, error } = state;\n const play = !loading && !error && !solved;\n return (\n <div class=\"flex flex-col\">\n {play ? <Alert message=\"Welcome, are you ready to play?...\" /> : ''}\n {loading ? <Alert message=\"Loading...\" spinner={true} /> : ''}\n {error ? <Alert message={error} salute=\"ERROR\" /> : ''}\n {solved ? <Alert message=\"You solved the puzzle!!\" /> : ''}\n </div>\n );\n};\n\nexport { Alerts };\nexport default Alert;\n"]}
@@ -8,3 +8,4 @@ const Alien = props => {
8
8
  };
9
9
  export { Alien };
10
10
  export default Alien;
11
+ //# sourceMappingURL=alien.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alien.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/alien.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,KAAK,GAAmC,KAAK,CAAC,EAAE;EACpD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC;EACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;EAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC;EACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;EAE9B,OAAO,CACL,WACE,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,KAAK,gBACC,OAAO;IAElB,iBAAQ,KAAK,CAAS;IACtB,SAAG,IAAI,EAAE,GAAG;MACV,YACE,CAAC,EAAC,wnBAQA,GACF,CACA;IACJ,YAAM,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG,CAClC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,eAAe,KAAK,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { IconProps } from '../../utils';\n\nconst Alien: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class;\n const label = props.label || 'alien';\n const size = props.size || 24;\n\n return (\n <svg\n class={klass}\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g fill={hex}>\n <path\n 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\"\n />\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Alien };\nexport default Alien;\n"]}
@@ -14,3 +14,4 @@ const Button = props => {
14
14
  };
15
15
  export { Button };
16
16
  export default Button;
17
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,EAAE,EAAU,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQpE,MAAM,MAAM,GAAqC,KAAK,CAAC,EAAE;EACvD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;EAEnD,OAAO,CACL,cACE,KAAK,EAAE,EAAE,CACP,6DAA6D,EAC7D,KAAK,KAAK,KAAK;MACb,CAAC,CAAC,8CAA8C;MAChD,CAAC,CAAC,KAAK,KAAK,UAAU;QACtB,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,KAAK,KAAK,MAAM;UAClB,CAAC,CAAC,uCAAuC;UACzC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,0CAA0C;YAC5C,CAAC,CAAC,0CAA0C,CAC/C,EACD,OAAO,EAAE,QAAQ,IAEhB,KAAK,CACC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,MAAM,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { tw, VoidFn, CHECK, NEW_PUZZLE, DELETE } from '../../utils';\n\ninterface ButtonProps {\n label: string;\n callback: VoidFn;\n matched?: boolean;\n}\n\nconst Button: FunctionalComponent<ButtonProps> = props => {\n const { label, callback, matched = false } = props;\n\n return (\n <button\n class={tw(\n 'rounded-md border border-solid border-clrs-slate4 font-bold',\n label === CHECK\n ? 'mr-2 bg-clrs-yellow px-3 py-2 text-clrs-navy'\n : label === NEW_PUZZLE\n ? 'mr-2 bg-clrs-navy px-3 py-2 text-white'\n : label === DELETE\n ? 'mr-1 bg-clrs-red px-2 py-1 text-white'\n : matched\n ? 'mr-1 bg-clrs-slate4 px-2 py-1 text-white'\n : 'mr-1 bg-gray-50 px-2 py-1 text-clrs-navy',\n )}\n onClick={callback}\n >\n {label}\n </button>\n );\n};\n\nexport { Button };\nexport default Button;\n"]}
@@ -33,3 +33,4 @@ const Cell = props => {
33
33
  };
34
34
  export { Cell };
35
35
  export default Cell;
36
+ //# sourceMappingURL=cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,WAAW,GAAG;EAClB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACrE,CAAC;AACF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG;EACnB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACvE,CAAC;AACF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AASnD,sCAAsC;AACtC,MAAM,IAAI,GAAmC,KAAK,CAAC,EAAE;EACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;EAChD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;EACnC,MAAM,IAAI,GAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;EAE3C,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,MAAe,EAAE,EAAE;IACvD,OAAO,GAAG,EAAE;MACV,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;OACtB;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAO,CACL,aACE,KAAK,EAAE,EAAE,CACP,QAAQ,IAAI,EAAE,EACd,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EACxD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EACvD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EACzD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EACtD,mDAAmD,EACnD,QAAQ;MACN,CAAC,CAAC,+CAA+C;MACjD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,8CAA8C;QAChD,CAAC,CAAC,MAAM;UACR,CAAC,CAAC,iCAAiC;UACnC,CAAC,CAAC,IAAI,KAAK,EAAE;YACb,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,kBAAkB,CACvB,EACD,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAEhC,IAAI,CACC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,eAAe,IAAI,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { actions, tw, PuzzleCell } from '../../utils';\n\n// NOTE: building indx mapping for the border highlighting...\nconst borderRight = [\n 2, 5, 11, 14, 20, 23, 29, 32, 38, 41, 47, 50, 56, 59, 65, 68, 74, 77,\n];\nconst borderLeft = borderRight.map(key => key + 1);\nconst borderBottom = [\n 18, 19, 20, 21, 22, 23, 24, 25, 26, 45, 46, 47, 48, 49, 50, 51, 52, 53,\n];\nconst borderTop = borderBottom.map(key => key + 9);\n\ninterface CellProps {\n cell: PuzzleCell;\n focus: boolean;\n selected: boolean;\n solved: boolean;\n}\n\n// Functional components return JSX...\nconst Cell: FunctionalComponent<CellProps> = props => {\n const { cell, focus, selected, solved } = props;\n const { key, isClue, indx } = cell;\n const clue: string = key != '.' ? key : '';\n\n const genHandler = (cell: PuzzleCell, solved: boolean) => {\n return () => {\n if (!solved) {\n actions.select(cell);\n }\n };\n };\n\n return (\n <label\n class={tw(\n `cell-${indx}`,\n borderRight.includes(indx) ? 'border-xbr-clrs-navy' : '',\n borderLeft.includes(indx) ? 'border-xbl-clrs-navy' : '',\n borderBottom.includes(indx) ? 'border-xbb-clrs-navy' : '',\n borderTop.includes(indx) ? 'border-xbt-clrs-navy' : '',\n 'h-8 w-8 border border-solid text-center leading-8',\n selected\n ? 'border-clrs-red bg-clrs-red-a50 text-clrs-red'\n : focus\n ? 'border-clrs-gray bg-clrs-green-a50 font-bold'\n : isClue\n ? 'border-clrs-gray bg-clrs-silver'\n : clue !== ''\n ? 'border-clrs-gray text-clrs-red'\n : 'border-clrs-gray',\n )}\n onClick={genHandler(cell, solved)}\n >\n {clue}\n </label>\n );\n};\n\nexport { Cell };\nexport default Cell;\n"]}
@@ -7,3 +7,4 @@ const Eswat2Io = _props => {
7
7
  };
8
8
  export { Eswat2Io };
9
9
  export default Eswat2Io;
10
+ //# sourceMappingURL=eswat2-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eswat2-io.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/eswat2-io.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,GAAG,GAAW,oBAAoB,CAAC;AACzC,MAAM,GAAG,GAAW,QAAQ,CAAC;AAE7B,MAAM,QAAQ,GAAwB,MAAM,CAAC,EAAE;EAC7C,OAAO,CACL,SACE,KAAK,EAAC,4DAA4D,EAClE,IAAI,EAAE,GAAG,gBACG,GAAG,EACf,KAAK,EAAE,GAAG;IAEV,EAAC,WAAW,IAAC,KAAK,EAAE,GAAG,GAAI,CACzB,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Fingerprint } from './fingerprint';\n\nconst url: string = 'https://eswat2.dev';\nconst who: string = 'eswat2';\n\nconst Eswat2Io: FunctionalComponent = _props => {\n return (\n <a\n class=\"absolute top-0 right-0 text-clrs-gray hover:text-clrs-navy\"\n href={url}\n aria-label={who}\n title={who}\n >\n <Fingerprint label={who} />\n </a>\n );\n};\n\nexport { Eswat2Io };\nexport default Eswat2Io;\n"]}
@@ -8,3 +8,4 @@ const Fingerprint = props => {
8
8
  };
9
9
  export { Fingerprint };
10
10
  export default Fingerprint;
11
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/fingerprint.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,WAAW,GAAmC,KAAK,CAAC,EAAE;EAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC;EACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;EAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC;EAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;EAE9B,OAAO,CACL,WACE,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,KAAK,gBACC,OAAO;IAElB,iBAAQ,KAAK,CAAS;IACtB,SAAG,IAAI,EAAE,GAAG;MACV,YACE,CAAC,EAAC,s3EAiCqC,GACvC,CACA;IACJ,YAAM,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG,CAClC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { IconProps } from '../../utils';\n\nconst Fingerprint: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class;\n const label = props.label || 'fingerprint';\n const size = props.size || 24;\n\n return (\n <svg\n class={klass}\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g fill={hex}>\n <path\n 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\"\n />\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Fingerprint };\nexport default Fingerprint;\n"]}
@@ -5,3 +5,4 @@ const Header = (_props, children) => {
5
5
  };
6
6
  export { Header };
7
7
  export default Header;
8
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,MAAM,GAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;EACvD,OAAO,CACL,UACE,KAAK,EAAE,EAAE,CACP,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,CACrB,IAEA,QAAQ,CACN,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,eAAe,MAAM,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { tw } from '../../utils';\n\nconst Header: FunctionalComponent = (_props, children) => {\n return (\n <h1\n class={tw(\n 'text-center uppercase text-clrs-red',\n 'mr-0 ml-0 mt-11 mb-11',\n 'text-6xl font-thin',\n )}\n >\n {children}\n </h1>\n );\n};\n\nexport { Header };\nexport default Header;\n"]}
@@ -16,3 +16,4 @@ const Keys = _props => {
16
16
  };
17
17
  export { Keys };
18
18
  export default Keys;
19
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/keys.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,IAAI,GAAwB,MAAM,CAAC,EAAE;EACzC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;EAE3C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IACjC,OAAO,GAAG,EAAE;MACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;EAClC,MAAM,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;EAExD,OAAO,CACL,WAAK,KAAK,EAAC,gCAAgC;IACxC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CACpD,EAAC,MAAM,IAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,GAAI,CACrD,CAAC,CAAC,CAAC,CACF,EAAE,CACH;IACA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;MAC1B,OAAO,CACL,EAAC,MAAM,IACL,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EACzB,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,GAAG,GACzB,CACH,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,eAAe,IAAI,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Button } from './button';\nimport { actions, state, DELETE } from '../../utils';\n\nconst Keys: FunctionalComponent = _props => {\n const { keys, list, pick, solved } = state;\n\n const genHandler = (key: string) => {\n return () => {\n actions.input(key);\n };\n };\n\n const values = solved ? [] : keys;\n const cell = pick != undefined ? list[pick] : undefined;\n\n return (\n <div class=\"mt-2 flex flex-row justify-end\">\n {!solved && cell && !cell.isClue && cell.key != '.' ? (\n <Button label={DELETE} callback={genHandler('.')} />\n ) : (\n ''\n )}\n {values.map((key: string) => {\n return (\n <Button\n label={key}\n callback={genHandler(key)}\n matched={cell.key === key}\n />\n );\n })}\n </div>\n );\n};\n\nexport { Keys };\nexport default Keys;\n"]}
@@ -70,3 +70,4 @@ export class ProtoSudoku {
70
70
  };
71
71
  }
72
72
  }
73
+ //# sourceMappingURL=proto-sudoku.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proto-sudoku.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/proto-sudoku.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,MAAM,OAAO,WAAW;;eACA,cAAc;oBACT,QAAQ;;EAEnC,gBAAgB;IACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACjC,CAAC;EAED,MAAM;IACJ,OAAO,CACL,WAAK,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,mCAAmC;MACrD,EAAC,QAAQ,OAAG;MACZ,EAAC,MAAM,iBAAgB;MACvB,EAAC,WAAW,OAAG;MACf,EAAC,IAAI,OAAG;MACR,UAAI,KAAK,EAAC,WAAW,GAAG;MACxB,EAAC,OAAO,OAAG;MACX,EAAC,MAAM,OAAG,CACN,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { Alerts } from './alerts';\nimport { Eswat2Io } from './eswat2-io';\nimport { Header } from './header';\nimport { Keys } from './keys';\nimport { SudokuBoard } from './sudoku-board';\nimport { ToolBar } from './tool-bar';\nimport { actions } from '../../utils';\n\n@Component({\n tag: 'proto-sudoku',\n styleUrl: 'proto-sudoku.css',\n shadow: true,\n})\nexport class ProtoSudoku {\n @Prop() tag: string = 'proto-sudoku';\n @Prop() platform: string = 'vercel';\n\n componentDidLoad() {\n actions.initApp(this.platform);\n }\n\n render() {\n return (\n <div id=\"app\" class=\"ds1-main relative max-w-min p-0.5\">\n <Eswat2Io />\n <Header>Sudoku</Header>\n <SudokuBoard />\n <Keys />\n <hr class=\"ml-0 mr-0\" />\n <ToolBar />\n <Alerts />\n </div>\n );\n }\n}\n"]}
@@ -9,3 +9,4 @@ const Spinner = props => {
9
9
  };
10
10
  export { Spinner };
11
11
  export default Spinner;
12
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,EAAE,EAAa,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAmC,KAAK,CAAC,EAAE;EACtD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC;EACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;EAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC;EAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;EAE9B,OAAO,CACL,WACE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,EAChC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,KAAK,gBACC,OAAO;IAElB,iBAAQ,KAAK,CAAS;IACtB;MACE,cACE,KAAK,EAAC,YAAY,EAClB,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,MAAM,EAAE,GAAG,kBACE,GAAG,GACR;MACV,YACE,KAAK,EAAC,YAAY,EAClB,IAAI,EAAE,GAAG,EACT,CAAC,EAAC,iHAAiH,GAC7G,CACN;IACJ,YAAM,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG,CAClC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAe,OAAO,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { tw, IconProps } from '../../utils';\n\nconst Spinner: FunctionalComponent<IconProps> = props => {\n const hex = props.hex || 'currentColor';\n const klass = props.class || '';\n const label = props.label || 'loading...';\n const size = props.size || 24;\n\n return (\n <svg\n class={tw(klass, 'animate-spin')}\n width={size}\n height={size}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-label=\"title\"\n >\n <title>{label}</title>\n <g>\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke={hex}\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill={hex}\n 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\"\n ></path>\n </g>\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport { Spinner };\nexport default Spinner;\n"]}
@@ -11,3 +11,4 @@ const SudokuBoard = _props => {
11
11
  };
12
12
  export { SudokuBoard };
13
13
  export default SudokuBoard;
14
+ //# sourceMappingURL=sudoku-board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sudoku-board.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/sudoku-board.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAwB,MAAM,CAAC,EAAE;EAChD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;EAE3C,OAAO,CACL,WACE,KAAK,EAAE,EAAE,CACP,yBAAyB,EACzB,sCAAsC,EACtC,uBAAuB,CACxB,IAEA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACxB,MAAM,QAAQ,GAAY,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IAC1D,MAAM,KAAK,GAAY,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7D,OAAO,CACL,EAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,CACvE,CAAC;EACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Cell } from './cell';\nimport { state, tw } from '../../utils';\n\nconst SudokuBoard: FunctionalComponent = _props => {\n const { list, pick, locs, solved } = state;\n\n return (\n <div\n class={tw(\n 'flex flex-row flex-wrap',\n 'border border-solid border-clrs-navy',\n 'h-76p5 w-76p5 text-lg',\n )}\n >\n {list.map((cell, index) => {\n const selected: boolean = solved ? false : index === pick;\n const focus: boolean = solved ? false : locs.includes(index);\n\n return (\n <Cell cell={cell} focus={focus} selected={selected} solved={solved} />\n );\n })}\n </div>\n );\n};\n\nexport { SudokuBoard };\nexport default SudokuBoard;\n"]}
@@ -18,3 +18,4 @@ const ToolBar = _props => {
18
18
  };
19
19
  export { ToolBar };
20
20
  export default ToolBar;
21
+ //# sourceMappingURL=tool-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-bar.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/tool-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAU,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,aAAa,GAAG,CAAC,OAAY,EAAU,EAAE;EAC7C,OAAO,GAAG,EAAE;IACV,OAAO,CAAC,OAAO,EAAE,CAAC;EACpB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAY,EAAU,EAAE;EAC3C,OAAO,GAAG,EAAE;IACV,OAAO,CAAC,KAAK,EAAE,CAAC;EAClB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAwB,MAAM,CAAC,EAAE;EAC5C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;EAE/B,OAAO,CACL,WAAK,KAAK,EAAC,eAAe;IACxB,EAAC,MAAM,IAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAI;IAC9D,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC/B,EAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAI,CACzD,CAAC,CAAC,CAAC,CACF,EAAE,CACH;IACD,EAAC,OAAO,OAAG,CACP,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAe,OAAO,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { Button } from './button';\nimport { TwLabel } from './tw-label';\nimport { actions, state, VoidFn, CHECK, NEW_PUZZLE } from '../../utils';\n\nconst handleRefresh = (actions: any): VoidFn => {\n return () => {\n actions.refresh();\n };\n};\n\nconst handleCheck = (actions: any): VoidFn => {\n return () => {\n actions.check();\n };\n};\n\nconst ToolBar: FunctionalComponent = _props => {\n const { list, solved } = state;\n\n return (\n <div class=\"flex flex-row\">\n <Button label={NEW_PUZZLE} callback={handleRefresh(actions)} />\n {list.length === 81 && !solved ? (\n <Button label={CHECK} callback={handleCheck(actions)} />\n ) : (\n ''\n )}\n <TwLabel />\n </div>\n );\n};\n\nexport { ToolBar };\nexport default ToolBar;\n"]}
@@ -5,3 +5,4 @@ const TwLabel = _props => {
5
5
  };
6
6
  export { TwLabel };
7
7
  export default TwLabel;
8
+ //# sourceMappingURL=tw-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw-label.js","sourceRoot":"","sources":["../../../src/components/proto-sudoku/tw-label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,CAAC,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAwB,MAAM,CAAC,EAAE;EAC5C,OAAO,CACL,aAAO,KAAK,EAAC,mDAAmD;;IACpD,UAAU,CACd,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAe,OAAO,CAAC","sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { TW_VERSION } from '../../utils';\n\nconst TwLabel: FunctionalComponent = _props => {\n return (\n <label class=\"ml-auto align-top text-xs italic text-clrs-slate4\">\n Tailwind {TW_VERSION}\n </label>\n );\n};\n\nexport { TwLabel };\nexport default TwLabel;\n"]}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"","sourcesContent":["export { Components, JSX } from './components';\n"]}
@@ -38,3 +38,4 @@ const bag = {
38
38
  };
39
39
  export { bag };
40
40
  export default bag;
41
+ //# sourceMappingURL=bag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bag.js","sourceRoot":"","sources":["../../src/utils/bag.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,cAAc,CAAC;AAC3B,MAAM,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC5B,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;AAChC,MAAM,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;AAE5B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;EAChC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EAEvC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;EAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;EAEnC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG;EACV,GAAG,EAAE,GAAG,EAAE;IACR,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;EACzB,CAAC;EACD,KAAK,EAAE,KAAK,CAAC,EAAE;IACb,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAC3B,CAAC;EACD,MAAM,EAAE;IACN,GAAG,EAAE,GAAa,EAAE;MAClB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;MAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,EAAE,CAAC,KAAe,EAAE,EAAE;MACzB,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;GACF;EACD,IAAI,EAAE;IACJ,GAAG,EAAE,GAAW,EAAE;MAChB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;MAC7B,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IACD,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE;MACvB,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;GACF;CACF,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,eAAe,GAAG,CAAC","sourcesContent":["const KEY = 'proto-sudoku';\nconst DATA = `${KEY}::data`;\nconst INPUTS = `${KEY}::inputs`;\nconst PICK = `${KEY}::pick`;\n\nconst getForKey = (key: string) => {\n const json = localStorage.getItem(key);\n\n return json ? JSON.parse(json) : undefined;\n};\n\nconst storeForKey = (key: string, value: any) => {\n const json = JSON.stringify(value);\n\n localStorage.setItem(key, json);\n};\n\nconst bag = {\n get: () => {\n return getForKey(DATA);\n },\n store: value => {\n storeForKey(DATA, value);\n },\n inputs: {\n get: (): string[] => {\n const line = getForKey(INPUTS);\n return [...line];\n },\n store: (value: string[]) => {\n storeForKey(INPUTS, value.join(''));\n },\n },\n pick: {\n get: (): number => {\n const pick = getForKey(PICK);\n return pick !== null ? pick : undefined;\n },\n store: (value: number) => {\n storeForKey(PICK, value >= 0 && value < 81 ? value : null);\n },\n },\n};\n\nexport { bag };\nexport default bag;\n"]}
@@ -4,3 +4,4 @@ export * from './store';
4
4
  export * from './tw-version';
5
5
  export * from './tw';
6
6
  export * from './types';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC","sourcesContent":["export * from './bag';\nexport * from './labels';\nexport * from './store';\nexport * from './tw-version';\nexport * from './tw';\nexport * from './types';\n"]}
@@ -2,3 +2,4 @@ const CHECK = 'Check ?';
2
2
  const DELETE = 'x';
3
3
  const NEW_PUZZLE = 'New Puzzle';
4
4
  export { CHECK, DELETE, NEW_PUZZLE };
5
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/utils/labels.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAW,SAAS,CAAC;AAChC,MAAM,MAAM,GAAW,GAAG,CAAC;AAC3B,MAAM,UAAU,GAAW,YAAY,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC","sourcesContent":["const CHECK: string = 'Check ?';\nconst DELETE: string = 'x';\nconst NEW_PUZZLE: string = 'New Puzzle';\n\nexport { CHECK, DELETE, NEW_PUZZLE };\n"]}
@@ -279,3 +279,4 @@ const actions = {
279
279
  };
280
280
  export { state, actions };
281
281
  export default state;
282
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/utils/store.ts"],"names":[],"mappings":"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","sourcesContent":["import { createStore } from '@stencil/store';\nimport ky from 'ky';\nimport { bag } from './bag';\nimport {\n AppStore,\n GeoMap,\n ComputeBoxFn,\n ComputeLocsFn,\n ComputeKeysFn,\n GeometryFn,\n InputsFn,\n PuzzleApiData,\n PuzzleCell,\n PuzzleData,\n} from './types';\n\n// --------------------------------------------------------[ mutable store ]\n\nconst storeDef: AppStore = {\n list: [],\n keys: [],\n locs: [],\n loading: false,\n solved: false,\n error: undefined,\n pick: undefined,\n data: undefined,\n};\n\nconst { state } = createStore(storeDef);\n\n// --------------------------------------------------------[ geometry ]\n\n// NOTE: by using Sets here, we don't have to worry about clearing geometry...\nconst geometry: GeoMap = new Map([\n ['row', new Map<number, Set<number>>()],\n ['column', new Map<number, Set<number>>()],\n ['box', new Map<number, Set<number>>()],\n]);\n\nconst keyValues: string[] = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\nconst computeBox: ComputeBoxFn = (row, column) => {\n if (column < 3) {\n return row < 3 ? 0 : row < 6 ? 3 : 6;\n } else {\n if (column < 6) {\n return row < 3 ? 1 : row < 6 ? 4 : 7;\n } else {\n return row < 3 ? 2 : row < 6 ? 5 : 8;\n }\n }\n};\n\nconst computeLocs: ComputeLocsFn = (index, row, column, box) => {\n const data = new Map<string, number>([\n ['row', row],\n ['column', column],\n ['box', box],\n ]);\n const locs = new Set<number>();\n\n data.forEach((value, key) => {\n geometry\n .get(key)\n .get(value)\n .forEach(indx => {\n indx !== index && locs.add(indx);\n });\n });\n\n return Array.from(locs);\n};\n\nconst computeKeys: ComputeKeysFn = locs => {\n const { list } = state;\n const found = new Set<string>();\n\n locs.map(indx => {\n const { key } = list[indx];\n if (key != '.') {\n found.add(key);\n }\n });\n\n const keys = keyValues.filter(key => !found.has(key));\n\n return keys;\n};\n\nconst updateGeometry: GeometryFn = (index, row, column, box) => {\n const data = new Map<string, number>([\n ['row', row],\n ['column', column],\n ['box', box],\n ]);\n\n data.forEach((value, key) => {\n const map = geometry.get(key);\n\n if (map.has(value)) {\n // looking at the set specification, it should be sufficient to just call add\n // https://tc39.es/ecma262/#sec-set.prototype.add\n map.get(value).add(index);\n } else {\n map.set(value, new Set([index]));\n }\n });\n};\n\nconst updateFromInputs: InputsFn = list => {\n const inputs = bag.inputs.get();\n\n inputs.forEach((key, indx) => {\n const cell = list[indx];\n const { isClue } = cell;\n\n if (!isClue) {\n cell.key = key;\n }\n });\n};\n\n// --------------------------------------------------------[ process ]\n\nconst processData = (next: PuzzleData) => {\n if (next) {\n const { puzzle, ref } = next;\n const cells = puzzle ? [...puzzle] : [];\n const line = ref ? atob(ref) : undefined; // decrypt the solution... [ base64 ]\n const solution = line ? [...line] : [];\n\n const list = cells.map((key, indx) => {\n const value = solution[indx];\n const isClue = key === value;\n const row = Math.floor(indx / 9);\n const column = indx % 9;\n const box = computeBox(row, column);\n\n updateGeometry(indx, row, column, box);\n\n return { key, isClue, value, indx, row, column, box };\n });\n\n // NOTE: this only happens once on data change...\n updateFromInputs(list);\n\n state.data = next;\n state.list = list;\n } else {\n state.data = undefined;\n state.list = [];\n }\n};\n\nconst processPick = (next: PuzzleCell) => {\n if (next !== undefined && next.indx != state.pick) {\n const { isClue, indx, row, column, box } = next;\n const locs = computeLocs(indx, row, column, box);\n const keys = isClue ? [] : computeKeys(locs);\n\n state.pick = indx;\n state.keys = keys;\n state.locs = locs;\n // NOTE: we could auto-pick if there's only one key...\n // (keys.length === 1) && next.key = keys[0];\n } else {\n state.pick = undefined;\n state.keys = [];\n state.locs = [];\n }\n savePick(state.pick);\n};\n\n// --------------------------------------------------------[ utils ]\n\nlet api = undefined;\n\nconst platformPrefix = {\n netlify: '/.netlify/functions',\n vercel: 'https://sudoku-rust-api.vercel.app/api',\n};\n\nconst getPrefixFor = (platform: string) => {\n const keys = Object.keys(platformPrefix);\n const target = keys.includes(platform) ? platform : 'vercel';\n\n return platformPrefix[target];\n};\n\nconst initApi = (platform: string) => {\n const prefix = getPrefixFor(platform);\n\n api = ky.extend({\n hooks: {\n beforeRequest: [\n request => {\n request.headers.set('X-Requested-With', 'ky');\n request.headers.set('X-Custom-Header', 'foobar');\n },\n ],\n },\n prefixUrl: prefix,\n timeout: 10000,\n });\n};\n\nconst saveInputs = (inputs: string[]) => {\n bag.inputs.store(inputs);\n};\n\nconst savePick = (pick: number) => {\n bag.pick.store(pick);\n};\n\nconst clearStore = (loading = false) => {\n state.list = [];\n state.keys = [];\n state.locs = [];\n state.loading = loading;\n state.solved = false;\n state.error = undefined;\n state.pick = undefined;\n state.data = undefined;\n};\n\nconst updateStore = (data: PuzzleApiData, save: boolean = true) => {\n const { puzzle, ref } = data;\n\n if (save) {\n bag.inputs.store([]);\n bag.store(data);\n }\n\n processData({ puzzle, ref });\n};\n\n// --------------------------------------------------------[ actions ]\n\nconst initApp = (platform: string) => {\n initApi(platform);\n clearStore();\n // this retrieves the last data we stored in the bag...\n const data = bag.get();\n const pick = bag.pick.get();\n\n if (data) {\n updateStore(data, false);\n\n if (pick >= 0) {\n const { list } = state;\n const cell: PuzzleCell = list[pick];\n\n processPick(cell);\n }\n }\n};\n\nconst refresh = async () => {\n clearStore(true);\n\n saveInputs([]);\n savePick(state.pick);\n\n try {\n // fetch a new puzzle from the api...\n const data: PuzzleApiData = await api.get('puzzle').json();\n\n updateStore(data);\n } catch (err) {\n // handle error...\n const { message } = err;\n\n console.log('-- ', message);\n console.log(err);\n\n state.error = message;\n } finally {\n // always executed\n state.loading = false;\n }\n};\n\nconst select = (cell: PuzzleCell) => {\n processPick(cell);\n};\n\nconst redraw = (list: PuzzleCell[]) => {\n state.list = [...list];\n list.length = 0;\n};\n\nconst check = () => {\n const { list } = state;\n const inputs: string[] = [];\n\n let errors: number = 0;\n let found: number = 0;\n let clues: number = 0;\n\n list.forEach(cell => {\n const { key, value, isClue } = cell;\n\n if (!isClue) {\n if (key !== '.') {\n if (key !== value) {\n errors = errors + 1;\n cell.key = '.';\n } else {\n found = found + 1;\n }\n }\n } else {\n clues = clues + 1;\n }\n\n inputs.push(cell.key);\n });\n\n const total = clues + found;\n\n found ? saveInputs(inputs) : saveInputs([]);\n\n if (errors > 0) {\n redraw(list);\n } else {\n if (total === 81) {\n state.solved = true;\n }\n }\n};\n\nconst input = (key: string) => {\n const { pick, list } = state;\n const cell = list[pick];\n\n cell.key = key;\n\n redraw(list);\n};\n\nconst actions = {\n initApp,\n refresh,\n select,\n check,\n input,\n};\n\nexport { state, actions };\nexport default state;\n"]}
@@ -2,3 +2,4 @@
2
2
  const TW_VERSION = '3.2.4';
3
3
  export { TW_VERSION };
4
4
  export default TW_VERSION;
5
+ //# sourceMappingURL=tw-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw-version.js","sourceRoot":"","sources":["../../src/utils/tw-version.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,eAAe,UAAU,CAAC","sourcesContent":["// WARNING: generated file...\nconst TW_VERSION = '3.2.4';\n\nexport { TW_VERSION };\nexport default TW_VERSION;\n"]}